DLL版本在不同的NuGet包中发生冲突

时间:2018-01-03 15:54:00

标签: visual-studio-2013 nuget nuget-package nuget-package-restore

在我的解决方案中,一些项目引用了“MahApps”NuGet包,其中包括“System.Windows.Interactivity.dll” 4.5.0.0 。有些项目还引用了“Prism”NuGet包,其中包括'System.Windows.Interactivity.dll' 4.0.0.0

顺便说一句,app.config的绑定重定向为“0.0.0.0-4.5.0.0”到“4.5.0.0”。

少数项目引用两个 NuGet包,并查看其“引用”列表中的一些有S.W.I v4.5.0.0,而其他项目有v4.0.0.0。 (我猜这种随机性取决于软件包安装到项目的顺序。)

有时候解决方案会构建并运行正常,但如果仅在引用SWI 4.0.0.0的项目中进行代码更改,那么我会遇到“无法找到v4.5.0.0”的运行时错误。 v4.0.0.0正被复制到构建输出文件夹,但我的绑定重定向告诉它期望4.5.0.0。

对解决方案的任何想法?我可以尝试卸载并重新安装导致问题的项目中的软件包,看看我是否可以让它们引用MahApps软件包中的4.5.0.0,但我担心的是这可能无法保证在程序包还原期间工作,将其搞砸为另一个开发人员(或构建服务器)。

1 个答案:

答案 0 :(得分:0)

我最终升级到Prism 6,其中不包含自己的DLL。值得庆幸的是,这是一项简单的工作。

我还必须删除MahApps包然后再添加它,以使Visual Studio添加该软件包的System.Windows.Interactivity.dll(4.5.0.0)。