我有一个简单的项目,该项目使用Visual Studio 2019开发人员提示符下的“ dotnet build”和msbuild进行构建,但不使用Visual Studio 2017提示符或IDE。我想了解msbuild 15如何找到已安装的SDK,以及为什么它们不是最新的,而VS 2019中的msbuild 16可以正常工作。
.NET Core SDK似乎未在msbuild 15中注册,但我不知道该注册如何发生。我尝试过重新安装SDK,安装了不同版本的SDK,但到目前为止还算不上成功。
不幸的是,切换到2019年很困难,因为我真正想要的是使用假设2017年的构建脚本来编译大型代码库。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
</Project>
根据VS2017开发人员提示进行编译:
msbuild foo.csproj /nologo
Build started 5/20/2019 7:22:06 AM.
Project "C:\Users\edwin\Source\Repos\foo\foo.csproj" on node 1 (default targets).
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.TargetFrame
workInference.targets(112,5): error : The current .NET SDK does not support targeting .NET Core 2.0. Either target .NET Cor
e 1.1 or lower, or use a version of the .NET SDK that supports .NET Core 2.0. [C:\Users\edwin\Source\Repos\foo\foo.csproj]
Done Building Project "C:\Users\edwin\Source\Repos\foo\foo.csproj" (default targets) -- FAILED.
使用“ dotnet build”在同一窗口中编译成功,2019开发人员提示(使用msbuild 16)中的“ msbuild foo.csproj”也是如此。
dotnet --info显示
.NET Core SDK (reflecting any global.json):
Version: 2.2.204
Commit: 8757db13ec
Runtime Environment:
OS Name: Windows
OS Version: 10.0.17763
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\2.2.204\
Host (useful for support):
Version: 2.2.5
Commit: 0a3c9209c0
.NET Core SDKs installed:
1.0.3 [C:\Program Files\dotnet\sdk]
2.1.104 [C:\Program Files\dotnet\sdk]
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.402 [C:\Program Files\dotnet\sdk]
2.1.403 [C:\Program Files\dotnet\sdk]
2.1.604 [C:\Program Files\dotnet\sdk]
2.2.204 [C:\Program Files\dotnet\sdk]
答案 0 :(得分:0)
4天前,当我使用Visual Studio 2017时遇到了这个问题。我花了整整时间来解决它。在互联网上搜索之后,我意识到这是一个版本问题。 当时,我试图创建一个新项目,并收到以下消息:
The SDK 'Microsoft.NET.Sdk.Web' specified could not be found.
因此,我决定删除所有.Net Core SDK版本,并按照download Page所示安装兼容版本。请参见下图。
[
安装后,一切正常。