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

  • Engadget

    Engadget

    18 EYLÜL 2006
  • New Challenger - Game Reviews

    New Challeng

    20 Temmuz 2006
  • xSammyJoe1

    xSammyJoe1

    19 Temmuz 2011