12

我有一个 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>

如果项目针对.NET Framework v4.0,我想知道为什么某些包含的参考引用v3.0、v3.5 框架。尽管项目的目标是 NET 框架 v4.0,但其他项目也会发生这种情况。

System.Core 面向 3.5 WindowsBase 面向 3.0

4

1 回答 1

3

这些引用本身需要 3.5(对于 System.Core)和 3.0(对于 WindowsBase)。实际上,这不是 100% 正确的(请参阅 Ramhound 对此答案的评论)。

到目前为止,任何高于 2.0 的 .NET 框架本质上都是位于 2.0 之上的 DLL。例如,几年前的一份工作,我需要 .NET 2.0 中的 LINQ 和 Hashset<T>,因为我的一半用户都卡在 Win2K 上,它不支持 .NET 2.0 以上的任何东西。我最终从Mono重新编译 System.Core并将其定位为 2.0,并且能够使用更新的功能。

我不认为这是你需要担心的任何事情。

于 2013-01-08T17:25:34.140 回答