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

  • Awesomesauce Network

    Awesomesauce

    4 EKİM 2012
  • Plugable

    Plugable

    19 Mayıs 2010
  • TechShowsYou

    TechShowsYou

    3 Mart 2011