C# · 12月 27, 2021

c# – .NET Framework从v3.5迁移到v4.0

我有一个visual studio 2008解决方案和.NET Framework v3.5.最近我已经转换成Visual Studio 2010和.NET Framework 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

解决方法 那些引用本身需要3.5(对于System.Core)和3.0(对于WindowsBase).其实这不是100%正确的(参见Ramhound对此答案的评论).

到目前为止,2.0以上的.NET框架本质上都是基于2.0版本的DLL.例如,几年前和之前的一个工作,我需要LINQ和Hashset< T>在.NET 2.0中,由于一半的用户被困在Win2K上,它不支持.NET 2.0以上的任何操作.我从Mono开始重新编译System.Core,目标是2.0,并且能够使用较新的功能.

我不认为这是你需要担心的.