【问题标题】:Using reference libraries (dll) stored in a different folder from the main program?使用存储在与主程序不同的文件夹中的参考库 (dll)?
【发布时间】:2010-08-26 16:37:04
【问题描述】:

(这可能是一个显而易见的问题,但我不知道该问 Bing/Google 什么)

在 VS2008 (C# Winforms) 项目中,引用了许多第三方库。该项目使用“Copy Local = True”,以便各种 DLL 文件最终与已编译的应用程序位于同一文件夹中。

为了清理,我想修改程序,使库都在一个子文件夹下。

例如:

C:\MyProgram\ -> 主程序文件夹 C:\MyProgram\Libraries -> DLL 存储文件夹

我该怎么做?

【问题讨论】:

    标签: c# visual-studio-2008 shared-libraries external


    【解决方案1】:

    执行此操作的最佳方法是将 app.config 文件添加到您的解决方案并为每个子文件夹设置私有探测路径。然后 CLR 在搜索程序集时会在这些文件夹中查找

    <configuration>
       <runtime>
          <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
             <probing privatePath="subFolder1;subFolder2;" />
          </assemblyBinding>
       </runtime>
    </configuration>
    

    文档

    【讨论】:

    • 当我重建应用程序错误时,出现找不到引用。路径命名有什么特别需要做的吗?
    • @John M,不,它只需要匹配 app.config 中的名称。请注意,您不能使用此方法并删除所有程序集引用。为了建造目的,它们仍然需要维护。 app.config 文件只是在部署场景中有所帮助。
    • 我认为这只适用于托管程序集。它不适用于本机/非托管 dll。
    猜你喜欢
    • 1970-01-01
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多