C# NET 2.0项目从VS2017生成,但不是从命令行生成

C# NET 2.0项目从VS2017生成,但不是从命令行生成,c#,.net,visual-studio-2017,C#,.net,Visual Studio 2017,我正在尝试构建,它有针对.NET2.0、3.5、4.0和.NETStandard的版本。所有版本都在Windows 7上的VS 2017 IDE中构建良好。但是,当我尝试使用dotnet.exe构建时,它会因以下错误而崩溃: 未找到“framework NETFramework的参考程序集,v2.0版” 我的构建脚本如下所示: dotnet --info dotnet restore -v Minimal dotnet build -c Release pause 如何从控制台成功构建此

我正在尝试构建,它有针对.NET2.0、3.5、4.0和.NETStandard的版本。所有版本都在Windows 7上的VS 2017 IDE中构建良好。但是,当我尝试使用
dotnet.exe
构建时,它会因以下错误而崩溃:

未找到“framework NETFramework的参考程序集,v2.0版”

我的构建脚本如下所示:

dotnet --info
dotnet restore -v Minimal

dotnet build -c Release

pause

如何从控制台成功构建此应用程序?

您似乎缺少.NET 2.0 SDK,以下是安装它的链接:

x86

x64

根据dotnet构建命令行方法仅用于支持.NET核心构建,而不是.NET Framework构建

任何当前构建系统都不支持.NET Framework 2.0,Visual Studio 2017也不支持它,所以我很惊讶它能正常工作。我相信VS2010是官方支持.NET2.0开发的最后一个版本。NET框架构建依赖于msbuild(dotnet build也依赖于msbuild,但具有不同的开关和文件)

表示VS2017支持:

  • .NET Framework版本4.7、4.6.2、4.6.1、4.6、4.5.2和3.5
  • .NET核心2.0、1.1和1.0
  • .NET本机
  • 单声道

您是否尝试过使用
--framework
选项的运气?请尝试2.1.101 SDK:@magicandre1981他指的是.NET framework 2.0(大约有12年历史),而不是.NET Core 2.0。@Robin是完全相同的错误吗?如果您还没有重新启动,我会尝试重新启动。正如您在链接的文档中所看到的,
dotnet build
使用msbuild。不仅如此,它还具有
--framework
cmdline选项。如果您遵循此选项描述中的“framework”链接,您将看到.NET framework 2.0确实受到.NET核心SDK的支持。差不多了,那么解决方案又是什么呢?我应该切换到MSBuild吗?基本上,它在VS中构建得很好,所以如果VS使用MSBuild,我也应该这样做?我认为
--framework
只支持
.netstandard
目标,这实际上是页面开头所说的,但更进一步,它确实将
net20
列为一个选项。有趣@RobinRodricks您是否按照elgonzo在早期评论中的建议尝试过?我成功地使用了“MSBuild”,其中“dotnet”失败,尽管链接文档说“dotnet”只调用“MSBuild”。这就是VS2019和框架4.7。