VS2017:目标框架下拉列表未显示.NET Core 2.1选项

时间:2018-04-03 12:05:43

标签: asp.net-core visual-studio-2017 asp.net-core-2.1

我已经安装了VS2017 Enterprise 15.6.4。最近从official site

安装了.NET Core 2.1.101 SDK

如果我创建控制台或asp.net核心应用程序,我期待.NET Core 2.1作为目标框架之一。有人可以帮我理解我在这里缺少的东西。

正如评论中所建议的,我安装了15.7预览2.仍然没有运气和同样的问题。

enter image description here

9 个答案:

答案 0 :(得分:19)

我遇到了同样的问题。我通过使用Runtime for .NET Core 2.1安装正确的SDK来解决这个问题。

基本上从VS Preview运行/创建2.1项目,您需要安装" 2.1.300" (不是2.1.4).NET Core SDK和Runtime。 https://www.microsoft.com/net/download/dotnet-core/sdk-2.1.300-preview1(这包括必需的运行时)

这个误导我在https://github.com/dotnet/cli/issues/8309发现的版本的错误解释(dasMulli于2月24日发表评论)。

答案 1 :(得分:8)

以防万一这对其他人有帮助...安装VS 15.9.2后,在2.2 Preview-3上正常运行的项目停止了工作。 VS无法看到预览SDK。我可以使用dotnet.exe而不是VS构建解决方案。

为解决此问题,我在此解决方案的根文件夹中创建了一个global.json,指向预览SDK。这使VS可以查看预览版本。

这是VS在15.8.x和15.9.x之间的行为变化。

要创建global.json,您可以导航到所需的文件夹并输入以下内容:

  

dotnet新的globaljson

答案 2 :(得分:3)

确保dotnet PATH变量的顺序正确

如果您已为其他系统架构安装了SDK(例如,如果您在64位计算机上安装了32位/ x86 SDK),则将在PATH variable中为该特定位置(例如C:\Program Files\dotnetC:\Program Files (x86)\dotnet)。

问题是Visual Studio在搜索已安装的框架时,将在找到的包含SDK的第一个PATH变量条目处停止。因此,如果您安装的第一个版本使用了错误的体系结构,那么您必须先调整这些条目的位置,然后任何正确的SDK才会出现在 Target Framework 下拉列表中。

来源:this absurdly-hard-to-find comment within issue #8309


TL; DR :确保您在列表中看到的路径变量中的第一个“ C:\ Program Files \ dotnet \”条目与您的系统体系结构匹配:

  • 64位= C:\Program Files\dotnet\
  • 32位= C:\Program Files (x86)\dotnet\

答案 3 :(得分:2)

确保Visual Studio 2017是最新的。转到“工具”->“扩展和更新”以安装Visual Studio更新。这为我解决了这个问题。

答案 4 :(得分:1)

我曾遇到类似的情况,我试图安装点网的预览版,但没有帮助。 但是,在我更新Visual Studio之后(从15.8到15.9.6)。 我可以在目标框架中看到点网核心2.1。

答案 5 :(得分:1)

已更新到最新的VS 2017,并安装了最新的.Net Core SDK。 将global.json更改为指向已安装的最新版本。 这为我解决了。

答案 6 :(得分:0)

我曾经遇到过类似的问题。然后,我刚刚将Visual Studio 2017更新为15.9.16版本并重新启动了系统。问题解决了。

答案 7 :(得分:0)

我遇到了类似的问题,我卸载了.Net Core 2.2运行时,然后从下面的链接中卸载:

https://dotnet.microsoft.com/download/visual-studio-sdks?utm_source=getdotnetsdk&utm_medium=referral

安装.Net Core 2.2 Visual Studio SDK,重新启动Visual Studio,我的问题已解决,.Net Core 2.2现在在Visual Studio 2017版本15.9.16的项目属性中的“目标框架”列表中列出。 >

答案 8 :(得分:0)

我在 .net core 2.1 下创建了一个新项目,没问题,但在我的旧项目中没有出现。所以我打开了两个“.cproject”文件并将它们放在一起比较,发现了问题。
在文本编辑器中打开项目的“.cproject”文件,然后替换下面的行

<TargetFramework>netstandard2.1</TargetFramework>

有了这个:

<TargetFramework>netcoreapp2.1</TargetFramework>