2016-12-21 5 views
7

私は、マルチプロジェクトのVisual Studioソリューションで、.NET 4.5.2をターゲットにしています。プロジェクトの1つ(WPFアプリケーション)では、System.Reactiveバージョン3.0.1000.0パッケージの後にReactiveUI 7.0.0.0パッケージを追加するためにnugetを使用しました。ReactiveUIがSystem.Reactiveの古いバージョンに依存しているのはなぜですか?

WPFアプリケーションで使用されるクラスライブラリである別のプロジェクトでは、単純にSystem.Reactiveバージョン3.0.1000.0パッケージを追加しました。

ReactiveUIパッケージは、古い一連のリアクティブパッケージ(RX-Core2.2.5など)に依存しているようです。 WPFアプリケーションプロジェクトファイルの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) 

私は2.2.5にソリューション全体で、すべてのSystem.Reactiveパッケージをダウングレードすることにより、これを修正することができるかもしれませんが、これは非常に古いバージョン(2014年)のように見えます。

ReactiveUIがSystem.Reactiveのv2.2.5に依存しているのはなぜですか?この動作を変更して、ソリューション全体で最新バージョンのSystem.Reactiveを使用できるようにする方法はありますか?

答えて

7

これはthis issue on githubで説明されています。長い話が短い - Reactive Extensionsの新バージョンはRxUI 7.0の開発サイクルの後期に登場したので、チームはこのリリースのためにそれをスキップすることにしました。これは既存のアプリケーションをメンテナンスするのに役立ちます。同時にRxバージョンをバンプすることなくRxUIバージョンをアップグレードすることができます。最新のRxに依存することは、RxUI 8.0リリースで計画されています。 3.0が導入System.ReactiveマイナーなAPIのチャーン(それはインフラについての詳細だったと基礎に物事を取得)、およびRxUI 7.0をまだ近くにあったという事実に

As @shiftkey states it:

、それそれは次のメジャーリリースのためにそれを残しておく方が簡単だったと決めました。

はい、現在、すべてのインフラストラクチャの作業が完了しており、RxUI 8のリリースサイクルに焦点を当てています。

片面メモ。このような長い時間(2014年)にRx 2.xが更新されていないという事実は、見た目ほど悪くない - これは本当に堅実な技術であり、心配することなく使用することができます。 3.0へのアップグレードはAPIにとって変わりがなく(また、変更が急激に導入されなかったため)、今のところ2.xに固執すると、プロジェクトサイクルの後半にアップグレードするのは面倒ではありません。それにもかかわらず

、あなたが本当に今日RxUIとRxの3.0を使用する場合、私はあなたがproject slack channelに参加し、最先端のリリースをテストし、自分を貢献することで、プロジェクトに参加することをお勧め:)

+0

おかげで - 役に立つ情報。 :-) – NeilMacMullen

関連する問題