提供外部装配本地dll依赖的路径
我有加载一组托管程序集的C#应用程序。 如果这些程序集可用,则其中一个程序集将加载两个本地dll(每个dll位于不同位置)。 Iam试图找到方法为这些本地dll提供搜索路径。
还有其他选择吗? 我真的不想提供这些DLL与我的软件 - 复制到程序目录当然解决了这个问题。
我尝试过使用SetDllDirectory系统函数,但可以只提供一个使用它的路径。 每次调用此函数都会重置路径。
设置PATH环境变量也不能解决问题:/
这可以帮助:
private void Form1_Load(object sender, EventArgs e)
{
//The AssemblyResolve event is called when the common language runtime tries to bind to the assembly and fails.
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.AssemblyResolve += new ResolveEventHandler(currentDomain_AssemblyResolve);
}
//This handler is called only when the common language runtime tries to bind to the assembly and fails.
Assembly currentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
string dllPath = Path.Combine(YourPath, new AssemblyName(args.Name).Name) + ".dll";
return (File.Exists(dllPath))
? Assembly.Load(dllPath)
: null;
}
将你的dll注册到GAC。 更多在这里。
链接地址: http://www.djcxy.com/p/44485.html上一篇: Providing path to externals assembly native dll dependecy