【问题标题】:Project references each refer to different assembly versions项目引用各自引用不同的程序集版本
【发布时间】:2010-03-05 03:16:22
【问题描述】:

我有一个引用版本 4.1 Microsoft.Practices.Common dll 的类库项目。我还引用了一个使用不同版本的 Microsoft.Practices.Common DLL 的第 3 方 DLL。

我创建了一个引用这两个 DLL 的 Windows 应用程序。

运行 MSBUILD 时收到错误消息:“无法解决...之间的冲突”。我认为这是因为它正在尝试构建项目并将所有文件放在 \bin 目录中,并且由于文件的名称相同,它会显示此消息。

项目确实正确构建,但会自动(“任意”)选择 Common DLL 的 4.1(更新)版本。

这里的问题是我不确定第3方的DLL是否兼容4.1版本。

我的问题:有没有办法使用 xcopy 部署来保留两个 DLL?如果可能,我想避开 GAC。

顺便说一句,我喜欢 Visual Studio 和 MSBUILD 都没有将此标记为警告,而是采用不同的版本 :)

【问题讨论】:

    标签: .net msbuild reference


    【解决方案1】:

    您不能 xcopy 将同一 dll 的两个副本部署到 /bin 文件夹。如果您必须同时使用两者,则需要在 GAC 中注册项目,或者您可以使用私有探测路径将它们存储在 /bin 文件夹的子文件夹中。

    但理想情况下,在这种情况下,为了省点麻烦,我建议只使用与第三方相同的版本。

    【讨论】:

    • 很乐意,但他们引用的是 v1.0,所以这不是一个选项 :( 感谢您确认我担心的事情。我正在讨论重新编译具有不同名称的企业库 DLL 以规避这个问题,但是这也很麻烦。
    猜你喜欢
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多