gpt4 book ai didi

reference - 为什么带有引用程序集的 VS2012 项目不能自动定位到 4.0

转载 作者:行者123 更新时间:2023-12-03 08:07:36 25 4
gpt4 key购买 nike

在 Visual Studio 2012 C# 控制台应用程序中,我将“.NET Framework Target”从 4.5 降级到 4.0。安装了两个框架的 Win 7 Pro。

然后我引用一个程序集,它通过警告提示以下内容:
The primary reference "System.Threading.Tasks.Dataflow, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" could not be resolved because it has an indirect dependency on the framework assembly "System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v4.0". To resolve this problem, either remove the reference "System.Threading.Tasks.Dataflow, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" or retarget your application to a framework version which contains "System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
如果我此时尝试编译,我会出错,因为引用程序集的类型和命名空间不可用,就好像根本没有引用程序集一样。

“添加引用”对话框没有 任何 System.Runtime 选择,但如果我手动解决
C:\Windows\Microsoft.NET\Framework\v4.0.30319\
并引用在那里找到的 System.Runtime 程序集,警告消失,我能够编译。

问题:

  • System.Runtime 版本的这种强制是否是 future (部署)的潜在问题。
  • 如果 VS 项目属性设置为以 Framework 4.0 为目标(这与以 4.0 SystemRuntime/CLR 为目标无关),为什么引用的 DLL 没有选择它,为什么手动添加对我的项目的引用可以解决该问题?
  • 最佳答案

    即使图书馆System.RuntimeC:\Windows\Microsoft.NET\Framework\v4.0.30319\ 里面目录,它不是 .NET 4.0 框架的一部分。 .NET 4.5 是 4.0 的就地更新,安装在具有相同版本号的同一文件夹中。

    这是一个屏幕截图,证明在 play .NET 4.0 安装中不存在该库:

    Plain 4.0 install

    您也可以通过浏览 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework 来验证这一点。您可以在其中找到所有已安装框架版本的原始程序集的目录。您会找到 System.Runtime.dll作为 .NETCore\v4.5 的一部分和 .NETPortable\v4.5子目录。

    您可以将库添加到您的项目的原因是运行时在 4.0 和 4.5 之间没有变化,因此 Visual Studio 不知道甚至不关心您手动添加的库是由 4.5 安装的。在这种情况下,Visual Studio 中的目标只是一个过滤器,可避免您不小心将 4.5 程序集添加到面向 4.0 的项目。

    附加信息:

    Rick Strahl 有一篇关于该主题的非常好的博客文章,其中有更详细的分析:

    http://www.west-wind.com/weblog/posts/2012/Mar/13/NET-45-is-an-inplace-replacement-for-NET-40

    关于reference - 为什么带有引用程序集的 VS2012 项目不能自动定位到 4.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15363832/

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