提供外部装配本地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

下一篇: .Net picking wrong referenced assembly version