【发布时间】:2019-04-02 20:44:31
【问题描述】:
我有一个基于 .NET Framework 4.6.2 构建的项目。它的依赖项之一是针对 .NET Standard 2.0 构建的程序集。
以前在我的旧计算机上构建得很好,但现在我正在设置一个新的开发系统,当我尝试使用相同版本的相同工具运行构建时,我得到一个关于 Netstandard DLL 引用一堆在 .NET Core 中流行的小单命名空间程序集的几十个错误。例如:
无法解析主要引用“Foo”,因为它间接依赖于框架程序集“netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51”,在当前目标框架中无法解析. “.NETFramework,版本=v4.6.2”。要解决此问题,请删除引用“Foo”或将您的应用程序重新定位到包含“netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51”的框架版本。 (MSB3268)
如果我从 GAC 显式添加对 Netstandard 2.0 的项目引用,则错误变为:
主要参考“netstandard”是一个框架程序集,无法在当前目标框架中解析。 “.NETFramework,版本=v4.6.2”。要解决此问题,请删除引用“netstandard”或将您的应用程序重新定位到包含“netstandard”的框架版本。 (MSB3267)
再次,在旧系统上构建(并且仍然构建)没有错误,我正在尝试在完全相同的 IDE 和编译器上构建项目而不进行任何更改。所以我只能假设我缺少需要在我的开发系统上安装的东西,但我不太确定它是什么。
以前有人遇到过这种情况吗?我在这里发现了一些关于尝试从 C# .NET Framework 项目中引用 Netstandard 程序集的其他问题,由于一些与 Roslyn 相关的细节,这显然很棘手,但我实际上在我的 NET Framework 项目中使用了 Boo 语言,所以这些问题都不是特别相关,而且它之前确实工作得很好。
如果我只知道我忽略了哪些细节,这感觉应该有一个非常简单的答案......
【问题讨论】:
-
Framework 4.5 只能引用 Standard 1.0 和 1.1。为了参考标准 2.0,您至少需要使用 Framework 4.6.1。请参阅此handy chart 以供参考。
-
@BradleyUffner 好的,尝试将其重建为 4.6.2。没有变化...
-
当您说您已经安装了所有东西时,我们无法询问是否缺少安装。但也许它真的缺乏安装?
-
@baruch“安装”什么?
-
@MasonWheeler “我正在设置新的开发系统”
标签: .net msbuild dependency-management .net-standard