为什么Visual Studio 2017找不到已安装的.NET Core SDK?

时间:2019-05-20 14:29:33

标签: visual-studio .net-core

我有一个简单的项目,该项目使用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]

1 个答案:

答案 0 :(得分:0)

4天前,当我使用Visual Studio 2017时遇到了这个问题。我花了整整时间来解决它。在互联网上搜索之后,我意识到这是一个版本问题。 当时,我试图创建一个新项目,并收到以下消息:

The SDK 'Microsoft.NET.Sdk.Web' specified could not be found. 

因此,我决定删除所有.Net Core SDK版本,并按照download Page所示安装兼容版本。请参见下图。

[Right .Net core version[2]

安装后,一切正常。