2013-01-08 99 views
10

我有一個visual studio 2008解決方案和.NET Framework v3.5。最近我已轉換爲Visual Studio 2010和.NET Framework v4.0。NET Framework從v3.5遷移到v4.0

要更改爲.NET Framework v4.0,我已通過項目屬性和構建選項卡完成,方法是將每個項目的目標更改爲目標Framework v4.0。 但是如果我打開配置項目文件的csproj,我可以看到有相關V3.5標籤:

<ItemGroup> 
    <Reference Include="System" /> 
    <Reference Include="System.Core"> 
    <RequiredTargetFramework>3.5</RequiredTargetFramework> 
    </Reference> 
    <Reference Include="System.Data" /> 
    <Reference Include="System.Drawing" /> 
    <Reference Include="System.Xml" /> 
    <Reference Include="WindowsBase"> 
    <RequiredTargetFramework>3.0</RequiredTargetFramework> 
    </Reference> 
</ItemGroup> 

我想知道爲什麼一些包括引用指的是V3.0,V3.5框架,如果項目目標爲.NET Framework v4.0。儘管項目面向.NET Framework v4.0,但其他項目也會發生這種情況。

System.Core程序被靶向至3.5 WindowsBase被靶向至3.0

+2

這就是IDE知道如何在選擇早期版本的.NET時顯示警告圖標的方式。功能,而不是一個錯誤。 –

回答

2

這些文獻本身需要3.5(對於System.Core程序)和3.0(對於WindowsBase)。其實,這不是100%正確的(參見Ramhound對此答案的評論)。

到目前爲止,2.0以上的任何.NET框架基本上都是位於2.0之上的DLL。例如,幾年前和一份工作之前,我需要.NET 2.0中的LINQ和HashsetT >,因爲我的一半用戶都停留在Win2K上,而Win2K不支持.NET 2.0以上的任何功能。我從Mono開始重新編譯System.Core,並將它定位到2.0,並且能夠使用更新的功能。

我不認爲這是你需要擔心的任何事情。

+0

我應該指出,RequiredTargetFramework XML元素也是空的。這意味着沒有針對3.5或3.0的引用。如果您想要,可以手動修改解決方案文件並刪除這些行。 –

+0

@Ramhound:好點。我從來沒有看過csproj文件,所以我不知道。 –

+0

由於各種原因,我花了許多天的時間不得不手動修改解決方案文件。在這種情況下,你的第一句話不是100%正確的。在這種情況下,'System.Core'將成爲.NET Framework 4.0所包含的版本,用於WPF應用程序的'WindowsBase'也將成爲.NET Framework 4.0 –

相關問題