Nir*_*jan 7 .net visual-studio-2010-beta-2
我正在玩VS2010 beta2.我注意到,如果我尝试将System.Core.dll添加到一个尚未引用该项目的项目中,在VS2010中,它会抱怨说我无法添加该程序集,因为它已经被项目系统引用.知道他们为什么在VS2010/4.0中这样做吗?是因为他们从System.Core转发了几种类型的mscorlib?
不是"为什么他们这样做"的答案,但可能会有所帮助.
这就是我看到导致隐式引用的动作链System.Core.dll:
ToolsVersion=4.0.假设它将使用.NET 4中的MSBuild.Microsoft.CSharp.targets从$(MSBuildBinPath).我想会的c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.CSharp.targetsMicrosoft.Common.targetsMicrosoft.NETFramework.propsAdditionalExplicitAssemblyReferencesnode,它具有以分号分隔的程序集列表.我发现有System.Core.dll和一个变量供以后更换.因此,要禁用 System.Core.dll的隐式引用,可以从AdditionalExplicitAssemblyReferences节点中的列表中删除它c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.NETFramework.props.
在此之后,如果您使用,例如,System.Linq并且在项目中没有引用System.Core.dll,您将在逻辑上得到编译错误,就像在Visual Studio 2008中一样.
自 3.5 以来,System.Core 一直是所需框架的一部分,因为它包含 ExtensionAttribute 和 LINQ 标准查询运算符等内容。同样,如果您在VS2008中创建3.5项目,它会自动为您添加对System.Core的引用。