当前的.NET SDK不支持在Visual Studio 2017更新15.3中定位.NET Standard 2.0错误

sah*_*har 108 visual-studio-2017 .net-standard-2.0

我想用Target Framework .NET Standard 2.0创建一个类库项目.

我已经更新了我Visual Studio 2017的版本15.3,并在Visual Studio安装程序中检查.NET Framework 4.7 SDK.NET Framework 4.7 targeting pack手动安装它们.

.NET Standard 2.0"项目/应用程序"窗口中的"目标框架"组合框中仍然没有选项.所以我.csproj手动将文件中的TargetFramework标记更改为netstandard2.0,但在尝试构建后,我收到此错误:

当前的.NET SDK不支持以.NET Standard 2.0为目标.要么是.NET Standard 1.6或更低版本,要么使用支持.NET Standard 2.0的.NET SDK版本.

Jon*_*eet 136

听起来像安装该特定版本的VS2017更新还没有安装.NET Core 2.0 SDK.您可以下载在这里.

要检查已安装的SDK版本,请运行

dotnet --info
Run Code Online (Sandbox Code Playgroud)

从命令行.请注意,如果global.json当前工作目录或任何祖先目录中有文件,则会覆盖运行SDK的哪个版本.(例如,如果您想为项目强制执行特定版本,那么这很有用.)

从评论来看,某些版本的VS2017更新安装.NET Core SDK.我怀疑它可能会随着时间的推移而有所不同.

  • 好的 - 我是这个主题的新手 - 我对.net核心和.net标准之间的密切关系感到惊讶 - 是不是创建.net标准来省略这种依赖的原因?为什么不在单独的包裹中运送? (5认同)
  • 卸载所有.net Core 1.x SDK后,我收到错误.我还有微软.安装.NET核心SDK 2.0.2,2.0.3,2.1.1和2.1.2以及VS 2017 5.2.一旦我手动安装了当前的Microsoft..NET核心SDK(2.1.3)我可以再次编译我的项目.我想知道在删除1.x SDK时是什么打破了2.x SDK. (3认同)
  • @Justin:好的,听起来好像2.1.4 SDK没有正确安装,或者你有一个global.json文件将它固定到旧版本. (2认同)

小智 19

而上述答案并没有解决我的问题.我终于通过专门访问此链接https://www.microsoft.com/net/download/visual-studio-sdks解决了这个问题,并为Visual Studio下载了所需的sdk.这真的令人困惑,我不明白为什么,但这解决了我的问题


H35*_*5am 8

有时在我尝试打开旧项目时会发生这种情况,对我有所帮助的是更改项目目标框架。转到项目->项目名称属性...并更改目标框架已安装了一个。 项目性质

  • 下拉菜单没有为我显示任何内容。有任何想法吗? (2认同)

lsp*_*lsp 7

对我来说,解决方案是更改版本global.json以反映已安装的版本.

像其他人说的那样可以找到dotnet --info在cmd中运行的版本

这个:

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "2.0.3"
  }
}
Run Code Online (Sandbox Code Playgroud)

变成了:

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "2.1.4"
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 如果`global.json`文件存在,将在哪里找到? (2认同)
  • 文件`global.json`将在解决方案文件旁边。我通常将其作为解决方案项包含在解决方案本身中。我在实验中发现,在不关闭并重新加载解决方案的情况下,更改`global.json`中的版本可能会导致奇怪的构建错误。我的评论适用于带有.NET Core SDK 2.2.100的VS2018版本15.9.2。 (2认同)

Wic*_*ves 6

这对我有用

使用Visual Studio 的安装

在“工作负载”选项卡上,选中“ .Net Core跨平台开发”,然后单击“修改”。

在此处输入图片说明

不要忘记检查左侧菜单上的“ .NET Core 2.0开发工具”。

资源

注意

我之前安装过Asp Net Core,但是没有出现在我的Visual Studio中,就在我使用Visual Studio的安装进行安装之后。


J. *_*eph 6

我安装了 Visual Studio 2019 和 2017。我尝试分别为 VS2017 安装 .NET Core 2.X SDK,但没有成功。

问题是,我安装了 .NET Core 3.0 SDK 作为默认 sdk-version,VS2017 不喜欢。

我的解决方案是为特定项目切换 SDK 版本。

  • 首先,列出您安装的 SDK 以找到所需的版本
$ dotnet --info

.NET Core SDK (reflecting any global.json):
 Version:   3.1.100
 Commit:    cd82f021f4

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.18362
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\3.1.100\

Host (useful for support):
  Version: 3.1.0
  Commit:  65f04fb6db

.NET Core SDKs installed:
  1.1.14 [C:\Program Files\dotnet\sdk]
  2.1.202 [C:\Program Files\dotnet\sdk]
  2.1.509 [C:\Program Files\dotnet\sdk]
  2.2.110 [C:\Program Files\dotnet\sdk]
  3.0.100 [C:\Program Files\dotnet\sdk]
  3.1.100 [C:\Program Files\dotnet\sdk]
Run Code Online (Sandbox Code Playgroud)
  • 从您的解决方案目录
$ dotnet new globaljson --sdk-version 2.2.110 --force
Run Code Online (Sandbox Code Playgroud)

现在,dotnet将为此解决方案使用指定的 SDK 版本。

我还没有找到一种方法来在系统范围内执行此操作,而不会弄乱我的 3.0 项目。