不同 NuGet 包中的 DLL 版本冲突
DLL version clashes in different NuGet packages
在我的解决方案中,一些项目引用了 "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”的绑定重定向。
一些项目引用了 both NuGet 包,并在他们的 "References" 列表中查看其中一些有 S.W.I v4.5.0.0 而其他有 v4.0.0.0。 (我猜这种随机性取决于软件包安装到项目的顺序)。
有时解决方案会构建并且 运行 很好,但是如果仅在引用 S.W.I 4.0.0.0 的项目之一中进行代码更改,那么我会收到 运行 时间错误沿着 "v4.5.0.0 could not be found" 的路线。 v4.0.0.0 被复制到构建输出文件夹,但我的绑定重定向告诉它期望 4.5.0.0.
有什么解决方案吗?我 可以 尝试卸载并重新安装导致问题的项目中的包,看看我是否可以让它们引用 MahApps 包中的 4.5.0.0,但我担心这可能不能保证在包恢复期间工作,为另一个开发人员(或构建服务器)搞砸了。
我最终升级到了 Prism 6,它除了自己的 DLL 之外不包含任何 DLL。值得庆幸的是,这是一项简单的工作。
我还必须删除 MahApps 包然后再次添加它,以便 Visual Studio 添加该包的 System.Windows.Interactivity.dll (4.5.0.0)。
在我的解决方案中,一些项目引用了 "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”的绑定重定向。
一些项目引用了 both NuGet 包,并在他们的 "References" 列表中查看其中一些有 S.W.I v4.5.0.0 而其他有 v4.0.0.0。 (我猜这种随机性取决于软件包安装到项目的顺序)。
有时解决方案会构建并且 运行 很好,但是如果仅在引用 S.W.I 4.0.0.0 的项目之一中进行代码更改,那么我会收到 运行 时间错误沿着 "v4.5.0.0 could not be found" 的路线。 v4.0.0.0 被复制到构建输出文件夹,但我的绑定重定向告诉它期望 4.5.0.0.
有什么解决方案吗?我 可以 尝试卸载并重新安装导致问题的项目中的包,看看我是否可以让它们引用 MahApps 包中的 4.5.0.0,但我担心这可能不能保证在包恢复期间工作,为另一个开发人员(或构建服务器)搞砸了。
我最终升级到了 Prism 6,它除了自己的 DLL 之外不包含任何 DLL。值得庆幸的是,这是一项简单的工作。
我还必须删除 MahApps 包然后再次添加它,以便 Visual Studio 添加该包的 System.Windows.Interactivity.dll (4.5.0.0)。