【问题标题】:Found conflicts between different versions of the same dependent assembly发现同一依赖程序集的不同版本之间存在冲突
【发布时间】:2013-05-22 01:41:34
【问题描述】:
我在 Visual Studio 2010 中创建了一个部署项目。我正在链接 MATLAB 组件和 .NET 组件。
我的 MATLAB 是 64 位的,Visual Studio 也是 64 位的,但有些参考是 32 位的。
当我编译部署项目时,我收到以下警告“发现同一依赖程序集的不同版本之间存在冲突”。
我尝试了一切并将我的处理器设置为 64 位。
但我仍然收到警告。
【问题讨论】:
标签:
.net
visual-studio-2010
matlab
c#-4.0
deployment
【解决方案1】:
这意味着您引用程序集 A 版本。项目 1 中的 xxx 和程序集 A 版本。项目 2 中的 yyy。
问题是您也可以从项目 1 中引用项目 2,因此当在运行时加载所引用的程序集时,两个 A 可能会发生冲突。
【解决方案2】:
我不知道这是否仍然对您有帮助!
我刚刚遇到了第三方公司提供的一些模块的这个问题,我现在已经开始在谷歌上搜索这个问题!
正如许多其他人所建议的那样,这意味着您的一些模块/dll 使用另一个核心模块的版本 A,而其他一些使用版本 B。在我的情况下,所有模块都在寻找 MODULE_A_VER_X.(signature XXXXXXXXXXXXXXXX) 并且一个寻找具有完全相同版本但具有不同签名的完全相同的模块[例如。 MODULE_A_VER_X.(签名 YYYYYYYYYYYYYYYYYYYYYYYY)]
在您的安装程序项目中,右键单击每个“检测到的依赖项”,然后在属性窗口中单击“依赖项”项。它向您展示了特定模块所依赖的核心模块!
这样做(对于您的所有依赖项),可以帮助您识别缺失/冲突的核心模块并让您走上正轨。
然后您可以联系 MATLAB,要求他们为您提供具有正确版本和签名的核心模块。或者您可以尝试自己查找。
然后您可以尝试将该模块添加到您的安装程序项目中,看看它是否有效!
(在我的情况下,第三方提供商告诉我它会解决我的问题,但它没有!也许对你有用!)
您也可以尝试使用 VS 安装程序以外的一些软件包(例如 WIX)创建安装程序。