SORU
19 Mayıs 2010, ÇARŞAMBA


İçinde C # arama yolunu belirtin .NET

Bir şekilde yolları C # ile alınan belirli bir derleme için aranacak belirtin var mı?

[DllImport("MyDll.dll")]
static extern void Func();

Bu YOL ortam değişkeni app dir ve dll arayın. Ama bazen dll başka bir yere yerleştirilecek. Bu bilgi uygulama belirtilebilir.config açık dinamik yükleme ve dinamik çağırma önlemek için dosya?

CEVAP
19 Mayıs 2010, ÇARŞAMBA


İlk kez ithal işlevi aramadan önce ek DLL yollar SetDllDirectory Ara.

İmza Çağır: P/

[DllImport("kernel32.dll", SetLastError = true)]
static extern bool SetDllDirectory(string lpPathName);

Birden fazla ek DLL arama yolu ayarlama, PATH ortam değişkeni değiştirmek, örneğin:

static void AddEnvironmentPaths(string[] paths)
{
    string path = Environment.GetEnvironmentVariable("PATH") ?? string.Empty;
    path  = ";"   string.Join(";", paths);

    Environment.SetEnvironmentVariable("PATH", path);
}

DLL arama sırası here on MSDN hakkında daha fazla bilgi var.


Güncellendi2013/07/30:

Güncelleştirilmiş yukarıdaki sürüm Path.PathSeparator kullanarak:

static void AddEnvironmentPaths(IEnumerable<string> paths)
{
    var path = new[] { Environment.GetEnvironmentVariable("PATH") ?? string.Empty };

    string newPath = string.Join(Path.PathSeparator.ToString(), path.Concat(paths));

    Environment.SetEnvironmentVariable("PATH", newPath);
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Orson Wang

    Orson Wang

    28 EKİM 2006
  • StalkerJS

    StalkerJS

    15 HAZİRAN 2010
  • TSE

    TSE

    12 Kasım 2012