2

這使我非常害怕今天。在演示Rx 2.x特性和功能時,我嘗試構建一個從另一臺計算機複製的啓用NuGet的項目。.Net 4.5和NuGet的反應式(Rx)構建問題

一切正確下載,參考在那裏!但我無法編譯。

下面這兩個程序集引起了這個問題。我想知道是否有人將Rx程序集解析爲.Net 4.5項目時遇到了這個問題。

System.Reactive.Windows.Threading

警告11的主要參考「System.Reactive.Windows.Threading, 版本= 2.1.30214.0文化=中性公鑰= 31bf3856ad364e35, ProcessorArchitecture用於= MSIL「無法解析,因爲它對框架程序集」System.Threading.Tasks, Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a「 具有 的間接依賴關係,它無法在當前目標中解析框架。 「.NETFramework,Version = v4.5」。要解決此問題,請刪除 參考「System.Reactive.Windows.Threading,版本= 2.1.30214.0, 文化=中性公鑰= 31bf3856ad364e35, ProcessorArchitecture用於= MSIL」或重新定位你的應用程序包含一個 框架版本「System.Threading.Tasks, Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a」。

而且System.Reactive.PlatformServices

警告26主要參考「System.Reactive.PlatformServices」 無法得到解決,因爲它對 骨架總成「系統的間接依賴.Runtime.Extensions,Version = 4.0.0.0, Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a「不能在當前目標框架中解決 。 「.NETFramework,Version = v4.5」。要解決此問題,請刪除 參考「System.Reactive.PlatformServices」或重新定位你的 應用程序包含 「System.Runtime.Extensions框架版本,版本= 4.0.0.0,文化=中立, 公鑰= b03f5f7f11d50a3a 」。

無法編譯:

錯誤73類型或命名空間名稱 'IScheduler' 找不到 (是否缺少using指令或程序集 參考?)
錯誤74類型或命名空間名稱「CompositeDisposable」無法找到 (是否缺少一個使用指令或程序集 參考?)

回答

1

我的心理調試器說這與在項目中混合引用.NET 4.0和.NET 4.5 Rx DLL或Microsoft.Bcl.Async有關。

+0

我認爲你的物理魔法是在目標上!最快的解決方法是卸載/重新安裝nuget軟件包Rx-Main - 這將尊重您在該機器上使用的任何.NET FX版本,但會使其與原始版本不匹配。 –

+0

查看參考資料後,我發現在lib \ net45中被NuGet拉動的Rx Dll是.Net v4.0 dll。所以這個問題在NuGet包中。 –