【问题标题】:Why can't Visual Studio 2017 find installed .NET Core SDKs?为什么 Visual Studio 2017 找不到已安装的 .NET Core SDK?
【发布时间】:2019-05-20 14:29:32
【问题描述】:

我有一个简单的项目,它使用“dotnet build”和来自 Visual Studio 2019 开发人员提示符的 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]

【问题讨论】:

  • 您的 SDK 版本为 2.2.204,因此值得尝试使用 netcoreapp2.2 而不是 netcoreapp2.0。
  • 谢谢!但是,当您下载适用于 VS 2017 的 .NET Core 2.0 SDK(来自 dotnet.microsoft.com/download/visual-studio-sdks )时,它会将您指向我已安装的 2.1.202 SDK;并且在使用“dotnet build”时以 netcoreapp2.0 为目标构建包。所以我不认为是这样。

标签: visual-studio .net-core


【解决方案1】:

我 4 天前在使用 Visual Studio 2017 时遇到了这个问题。我花了一整天的时间来解决它。在网上搜索后,我意识到这是一个版本控制问题。 非常时间,我尝试创建一个新项目,我收到了这条消息:

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

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

[

安装后一切正常。

【讨论】:

  • 想知道您在哪里删除了 dot net core sdk?我的项目根本不需要 dot net core,但我仍然看到提示“无法安装 .Dot.Net Core 2.1”-.-
  • 转到控制面板,然后将其卸载。
猜你喜欢
  • 2022-11-13
  • 2016-11-15
  • 2021-12-10
  • 1970-01-01
  • 2020-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-23
相关资源
最近更新 更多