在Visual Studio 2012 C#控制檯應用程序中,我將「.NET Framework目標」從4.5降級到4.0。 Win 7 Pro與兩個框架安裝。爲什麼VS2012項目引用程序集無法自動定位4.0
我再引用一個程序集,通過警告抱怨如下:從引用的程序集
The primary reference "System.Threading.Tasks.Dataflow, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" could not be resolved because it has an indirect dependency on the framework assembly "System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v4.0". To resolve this problem, either remove the reference "System.Threading.Tasks.Dataflow, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" or retarget your application to a framework version which contains "System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
如果我試圖在這一點上進行編譯,我錯誤,監守類型和命名空間不可用,就好像程序集根本沒有被引用。
「添加引用」 對話框沒有任何 System.Runtime選擇,但如果我手動博澤到 C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ 和引用的系統。在那裏發現運行時組件,警告消失,我可以編譯。
問題:
就是這樣的System.Runtime版本迫使潛在問題的道路(部署)。
如果VS項目屬性是seto目標框架4.0(不涉及定位4.0 SystemRuntime/CLR),爲什麼不是refferenced選擇了這個,爲什麼手動添加引用到我的項目修復那個問題?
我試圖理解這個的含義 - 它實際上是否表示無法準確定位.net運行時的4.0版本(如果在安裝了4.5的系統上構建的)?這是否真的意味着編寫代碼 - 例如 - Windows 2008服務器的唯一方法是降級(可能從Win 8升級)我的開發機器到Windows 7和VS2010? – glenatron 2013-12-23 15:43:01