4

クラス ライブラリ プロジェクト (VS2012、.NET Framework 4.5) があります。NuGet を使用して Rx Main 2.0.21114 をインストールしました。コンパイルすると、次のような性質の警告が大量に表示されます。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9): 警告 MSB3268: プライマリ リファレンス "System.Reactive.Core、Version=2.0.20823.0、Culture=neutral、PublicKeyToken =f300afd708cefcd3, processorArchitecture=MSIL" は、フレームワーク アセンブリ "System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" に間接的な依存関係があるため、解決できませんでした。これは、現在対象となっているフレームワークでは解決できませんでした。 . ".NETFramework,Version=v4.5". この問題を解決するには、「System.Reactive.Core、Version=2.0.20823.0、Culture=neutral、PublicKeyToken=f300afd708cefcd3、processorArchitecture=MSIL」の参照を削除するか、「System.Runtime、Version」を含むフレームワーク バージョンにアプリケーションを再ターゲットします。 =4.0.0.0、文化=中立、

その後、Rx アセンブリからのシンボルの解決に失敗します。プロジェクト参照が Rx インストールの下の Net45 フォルダーを指していることを確認しました。私は Google でまったくヒットしていないので、4.5 で Rx を使用するのは非常に簡単だと思います。この問題の原因についてのアイデアはありますか?

4

4 に答える 4

2

さて、これは私の現在のマシン/VS2012のインストールに多少の癖があることが判明しました. 別の開発ボックスでバニラ プロジェクトを試し、私のボックスで同じプロジェクトを試しました。そこでは期待どおりに機能しましたが、ここでは同じメッセージで失敗しました。新しい VM と開発環境をスピンアップしましたが、すべてが宣伝どおりです。

提案をありがとう。

于 2012-12-14T20:31:02.360 に答える
2

これは通常、何らかの形で Rx 4.0 DLL が参照されていることを意味します。参照を削除し、明示的に Rx 4.5 バージョンを指すようにします。

于 2012-12-14T09:09:10.310 に答える
2

まず、エラー メッセージの Rx バージョン (2.0.20823.0) が、質問で言及したバージョン (2.0.21114) と一致しないことに注意してください。20823 は 4 バージョン前です。

さらに関連性の高い System.Runtime は、ポータブル クラス ライブラリと Windows ストア アプリで使用されるアセンブリです。それはあなたの目標と一致しません。完全なフレームワークを選択しました。それ以外の場合は、Nuget から見たものと一致します。利用可能な Rx のストア バージョンのみが表示されます。

どのようにして参照を追加できたのか、私にはわかりません。自分でそれを行うことはできません。以前にマシンにインストールした古いバージョン (20823 など) への参照を何らかの方法で取得し、新しいバージョンをインストールすることで変更されたと推測できます。みたいな、靴が合う。

于 2012-12-14T11:54:59.613 に答える
1

これは、Rxを使用するF#プロジェクトで発生することがあり、修正はSystem.ComponentModel.Compositionプロジェクトを参照することです。私が推測するポータブルライブラリシステムの癖。

于 2012-12-14T19:40:38.057 に答える