RavendbおよびSignalr Nugetパッケージの依存関係の競合
質問
基本的な対立。
SignalrはNewtonsoft.jsonバージョン4.0.7以降を望んでいますが、Ravendbは4.0.5に等しいバージョンを必要とします。これは明らかに、彼らが並んでインストールできないことを意味します。
そのため、そのうちの1つからソースコードをダウンロードし、依存関係をローカルで把握することは別として、それから作成されたバイナリをチェックインする必要がありますが、Nugetで管理された依存関係を維持する方法があり、DLLコールを転送するだけです( MVCのように、たとえば、新しいバージョンごとに行われます)?
解決
私たちは数日前に同じ問題に遭遇していましたが、これは厄介なものです。 Nugetで管理されている依存関係を維持できないことがわかりました。代わりに、signrrを変更して4.0.5を使用し、ローカルにコンパイルしました。
他のヒント
この対立を回避するためのより適切な方法さえあります。 .netは私たちに可能性を与えてくれるので アセンブリをリダイレクトします, 、なぜそれを使わないのですか;)
そのようなものをapp.configに追加するだけです(既にアセンブリバインディングが配置されている場合は注意してください):
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.8.0" newVersion="4.0.5.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
このリダイレクトセットを使用すると、RavendBパッケージとSignalRパッケージ(それぞれがjson.netの他のバージョンを参照)を追加するだけで、修正が行われます。
さらに、私はしました signalのリクエストをプルします バージョン4.0.5のjson.netのサポートをリクエストするには(後方互換性がある必要があるため)
所属していません StackOverflow