gpt4 book ai didi

.net - 默认添加 4.0 中的 System.Core.dll?

转载 作者:行者123 更新时间:2023-12-04 11:45:30 24 4
gpt4 key购买 nike

我在玩 VS2010 beta2。我注意到,如果我尝试将 System.Core.dll 添加到尚未引用的项目中,在 VS2010 中,它会提示说我无法添加该程序集,因为它已被项目系统引用。知道他们为什么在 VS2010/4.0 中这样做吗?是不是因为他们已经从 System.Core 向 mscorlib 转发了一些类型?

最佳答案

不是“他们为什么这样做”的答案,但可能会有所帮助。

这就是我如何看待导致隐式引用的操作链 System.Core.dll :

  • 您在 Visual Studio 2010 中创建一个项目。它生成 .csprojToolsVersion=4.0 .假设它将使用 .NET 4 中的 MSBuild。
  • 您的 .csproj 导入 Microsoft.CSharp.targets来自 $(MSBuildBinPath) .我猜它会是 c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.CSharp.targets
  • Microsoft.CSharp.targets 导入 Microsoft.Common.targets
  • 在 .NET 4 中,Microsoft.Common.targets 导入 Microsoft.NETFramework.props
  • 在 Microsoft.NETFramework.props 中,您可以找到 AdditionalExplicitAssemblyReferences节点,它有一个以分号分隔的程序集列表。我在那里找到了 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 中一样。

    关于.net - 默认添加 4.0 中的 System.Core.dll?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2091319/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com