.Net 4.5.2 をターゲットとするマルチプロジェクトの Visual Studio ソリューションがあります。プロジェクトの 1 つ (WPF アプリケーション) で、nuget を使用して System.Reactive バージョン 3.0.1000.0 パッケージを追加し、その後に ReactiveUI 7.0.0.0 パッケージを追加しました。
WPF アプリケーションで使用されるクラス ライブラリである別のプロジェクトでは、System.Reactive バージョン 3.0.1000.0 パッケージを単純に追加しました。
ReactiveUI パッケージは、古い一連のリアクティブ パッケージ (RX-Core2.2.5 など) に依存しているようです。これは、WPF applicatio プロジェクト ファイルの HintPaths が packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll などの場所を指しているためです。
アプリケーションをビルドして実行すると、少なくとも 1 つのプロジェクトが間違った dll バージョンを使用しようとしているため、FileLoadException が発生します。以下は典型的なものです....
System.IO.FileLoadException occurred
HResult=0x80131040
Message=Could not load file or assembly 'System.Reactive.Linq, Version=3.0.1000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
ソリューション全体のすべての System.Reactive パッケージを 2.2.5 にダウングレードすることでこれを修正できるかもしれませんが、これは非常に古いバージョン (2014) のようです。
ReactiveUI が System.Reactive の v2.2.5 に依存しているのはなぜですか? ソリューション全体で System.Reactive の最新バージョンを使用できるように、この動作を変更する方法はありますか?