Appelez SetDllDirectory
avec votre DLL chemins avant de vous appeler dans la fonction importée pour la première fois.
P/Invoke signature:
[DllImport("kernel32.dll", SetLastError = true)]
static extern bool SetDllDirectory(string lpPathName);
Pour définir plus d'une DLL chemin de recherche, de modifier l' PATH
variable d'environnement, par exemple:
static void AddEnvironmentPaths(string[] paths)
{
string path = Environment.GetEnvironmentVariable("PATH") ?? string.Empty;
path += ";" + string.Join(";", paths);
Environment.SetEnvironmentVariable("PATH", path);
}
Il n'y a plus d'infos à propos de la DLL ordre de recherche ici sur MSDN.
Mise à jour 2013/07/30:
Version mise à jour de la ci-dessus en utilisant Path.PathSeparator
:
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);
}