【问题标题】:Why refed Dll should be placed in same directory with the exe in .Net?为什么 refed Dll 应该与 .Net 中的 exe 放在同一目录中?
【发布时间】:2013-08-14 06:30:16
【问题描述】:

假设我在vs2010中有几个项目,一个名为app,它是主项目。当我在另一个类库项目中引用应用程序项目使用的dll时,我确保引用的dll已复制到bin类库项目的文件夹,但有一个运行时错误提醒我,除非我将 dll 放在主项目的 bin 文件夹中,否则无法找到引用的 dll。这是为什么呢?期待您的回答,谢谢!

【问题讨论】:

    标签: .net c#-4.0 c#-2.0


    【解决方案1】:

    有一个 .dll 搜索顺序。 参考http://msdn.microsoft.com/en-us/library/yx7xezcf.aspx

    【讨论】:

      【解决方案2】:

      我尝试搜索“为什么将引用的 dll 复制到 bin 文件夹中”,但找不到任何特定的帖子或博客,但这不是构建应用程序的正确方法吗? .net 确保来自其他引用项目的所有 dll 都被复制到可执行文件的 bin 文件夹中,这样就没有机器级别的依赖关系。如果您的项目 dll 在本地被引用,这是真的。如果您希望您的项目 dll 被多个项目引用,则要么分发这些 dll,要么您需要将这些 dll 放在分发这些 dll 的机器的全局程序集缓存 (GAC) 中。要做到这一点,链接是here

      您也不需要将每个引用的 dll 复制并粘贴到 bin 文件夹中。 .net 会自动执行此操作。如果不是您的情况,则右键单击“参考”区域中的子项目,转到属性,然后将“复制本地”设置为 True。这会将 dll 复制到您的输出/bin 文件夹中以进行分发,并且应该解决依赖关系在没有 DLL 的机器上。

      我希望这会有所帮助。

      问候,

      萨马尔

      【讨论】:

        猜你喜欢
        • 2011-08-03
        • 2016-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-22
        • 1970-01-01
        相关资源
        最近更新 更多