如何解决MVVM Light NuGet Silverlight 5与Microsoft.Practices.Servi



我们有一个Silverlight 5项目,我们目前有一个共享库DLL的文件夹。我们正在尽可能对这些库使用NuGet。

我们想要使用的NuGet包之一是MVVMLight,以取代我们目前使用的MVVMLight SL4 DLL,当我们从SL4移动到SL5时,它从未升级过。

但是,当我们安装包含SL5 DLL的NuGet包时,它会自动将我们现有的对microsoft . practicesservicelocation DLL文件的引用更改为与MVVM Light包一起提供的引用,该包具有相同的版本号,但公钥不同。

这导致了与我们使用Prism库的其他代码的冲突,该库使用Microsoft.Practices.ServiceLocation DLL,但是使用原始公钥签名。

显然,我们不能在同一文件夹中使用相同的命名DLL两次,所以,关于如何解决这个问题的任何建议,同时保持Prism和MVVM Light包从NuGet安装。

非常感谢,

Martyn。

我在使用Microsoft.Practices.ServiceLocation.dll时遇到了完全相同的问题。在我的情况下,如果MvvmLight的nuget包依赖于CommonServiceLocator,这可以解决,正如我在这里建议的那样:http://mvvmlight.codeplex.com/discussions/429311

到目前为止,还没有消息。

编辑:Laurent只是使用Nuget的CommonServiceLocator来推送一个版本的MVVM Light。

The Portable。CommonServiceLocator NuGet包包含现有的签名CSL二进制文件,以及支持windows 8、。net 4.5和其他版本的PCL二进制文件。仍在等待微软将PCL包含在其官方软件包中,但二进制文件与我提到的相同。

您也可以尝试使用Portable。MvvmLightLibs,这是一个PCL版本。它支持所有的框架(WP7.5+、。net 4.5、Store、SL4+),并使用官方的微软签名CSL库。

最新更新