3

Silverlight 5 プロジェクトがあり、現在、共有ライブラリ DLL のフォルダーがあります。可能な限り、これらのライブラリに NuGet を使用するように変更中です。

使用したい NuGet パッケージの 1 つは MVVMLight です。これは、現在使用している MVVM Light SL4 DLL を置き換えるもので、SL4 から SL5 に移行したときにアップグレードされませんでした。

ただし、SL5 DLL を含む NuGet パッケージをインストールすると、Microsoft.Practices.ServiceLocation DLL ファイルへの既存の参照が、バージョン番号は同じですが公開キーが異なる MVVM Light パッケージに付属するものに自動的に変更されました。

これにより、Microsoft.Practices.ServiceLocation DLL を使用する Prism ライブラリを使用しているが、元の公開キーで署名されている他のコードの一部と競合が発生しました。

明らかに、同じ名前の DLL を同じフォルダーで 2 回使用することはできないため、NuGet からインストールされた Prism と MVVM Light パッケージの両方を維持しながら、この問題を解決する方法についての提案.

どうもありがとう、

マーティン。

4

2 に答える 2

1

Microsoft.Practices.ServiceLocation.dll とまったく同じ問題があります。私の場合、ここで提案したように、 MvvmLightのナゲット パッケージが CommonServiceLocator に依存していた場合、これは解決される可能性があります: http://mvvmlight.codeplex.com/discussions/429311

これまでのところ、それに関するニュースはありません。

編集: Laurent は、Nuget の CommonServiceLocator を使用して MVVM Light のバージョンをプッシュするだけです。

于 2013-01-12T16:32:23.297 に答える
0

Portable.CommonServiceLocator NuGet パッケージには、既存の署名済み CSL バイナリと、Windows 8、.net 4.5 などをサポートする PCL バイナリが含まれています。マイクロソフトが公式パッケージに PCL を含めるのをまだ待っていますが、バイナリは私が言及したものと同じです。

PCL バージョンである Portable.MvvmLightLibs を使用することもできます。これは、すべてのフレームワーク (WP7.5+、.NET 4.5、Store、SL4+) をサポートし、公式の Microsoft 署名付き CSL ライブラリを使用します。

于 2013-01-17T04:14:21.723 に答える