2010-08-03 231 views
1

我剛開始使用Visual Studio 2010和.NET 4.0。我創建了一個爲.NET 2.0構建的DLL的新WPF項目。當我建立這個項目,我得到這樣一個一堆警告:NET 4.0項目到.NET 2.0 dll /項目的參考問題

The referenced assembly 
"MicroFour StrataFrame Business...processorArchitecture=MSIL" 
could not be resolved because it has a dependency on 
"System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
which is not in the currently targeted framework ".NETFramework,Version=v4.0,Profile=Client". 
Please remove references to assemblies not in the targeted framework 
or consider retargeting your project. 

當我引用一個項目,我創建了一個針對3.5,它不能找到任何的命名空間(編譯時),雖然他們在對象瀏覽器中顯示並且智能感知正確顯示它們。

有沒有什麼我想念,需要做的引用舊的.NET程序集?

回答

4

您的2.0程序集有一個對System.Web的引用。該參考被自動轉發到您的目標框架4.0。所以它試圖使用System.Web, version 4.0.0.0。問題是4.0(實際上這是從3.5開始的),現在有一個客戶端配置文件的概念。客戶端配置文件有一個較小的引用程序集,任何與Web /服務器相關的東西都被刪除。這是爲了讓.NET框架爲最終用戶提供更小/更簡單的下載。

隨着VS 2010和.NET 4,客戶端配置文件被推得更加困難,MS真的希望我們使用它。因此,您的.NET 4項目默認定位客戶端配置文件。你引用的程序集需要System.Web,所以在這種情況下你需要切換到完整的配置文件。

+0

謝謝!那樣做了! :D – 2010-08-03 04:40:21

5

定位.NET 4.0的客戶端配置文件幾乎沒有意義。下載量爲41MB,完整版爲48MB,只有15%大。不幸的是,它是VS2010中的默認值,只需使用Project + Properties,Application選項卡,Target框架組合對其進行更改即可。

客戶端配置文件確實如果您的目標爲3.5,則完全安裝爲〜350 MB。這個巨大的差異是由先決條件解釋的,.NET 4.0至少需要XP SP3或Vista SP1。但3.5安裝在Windows> 2000的任何版本上。因此,3.5安裝程序包含許多.NET所使用的非託管Windows組件所需的更新。 Web安裝程序相當順從地減輕了這種打擊。

+0

感謝您的補充信息。我喜歡理解正在發生的事情! – 2010-08-03 04:31:00