C#-DllImport 路径问题

原文:C# DllImport 相对路径无法找到dll

DllImport DLL查找顺序:
1、应用程序所在目录
2、Windows目录和Windows\System32目录
3、环境变量目录

只需要你把引用的DLL 拷贝到这三个目录下 就可以不用写路径了

 

最后的解决办法:动态设置当前进程的环境变量,把sdk所在的目录添加到环境变量中,这其内部就可以找到自己的dll了

 /// <summary>
    /// 添加环境变量
    /// </summary>
    /// <param name="paths">路径列表</param>
    internal 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);   // 这种方式只会修改当前进程的环境变量
    }

 

posted @ 2019-07-11 09:40  Merray  Views(3997)  Comments(0Edit  收藏  举报