在 Visual Studio 2019 中找不到 .NET 5.0 控制台应用程序项目模板

Posted

技术标签:

【中文标题】在 Visual Studio 2019 中找不到 .NET 5.0 控制台应用程序项目模板【英文标题】:Cannot find .NET 5.0 Console App project template in Visual Studio 2019 【发布时间】:2021-07-28 04:32:23 【问题描述】:

我目前正在尝试在 Visual Studio 2019 中创建一个 C# .NET 5.0 控制台应用程序,但该选项没有像我预期的那样出现在项目模板下。

我下载了 Visual Studio Professional 2019 版本 16.9.4(来自 https://visualstudio.microsoft.com/downloads/)并选择了所有要安装的工作负载,然后我安装了 SDK 5.0.202、ASP.NET Core Runtime 5.0.5、.NET Desktop Runtime 5.0。 5 和 .NET 运行时 5.0.5(来自 https://dotnet.microsoft.com/download/dotnet/5.0)。

当我转到文件 -> 新建 -> 项目并搜索“控制台应用程序”时,C# 没有默认的“控制台应用程序”项目模板。我能找到的最接近的是 C#、VB 和 F# 的“控制台应用程序 (.NET Framework)”和 C++ 的“控制台应用程序”。如果我为 C# 选择“控制台应用程序(.NET Framework)”,我可以选择的最新框架是“.NET Framework 4.8”。

实际结果:项目模板

实际结果:框架

我与没有遇到此问题的开发人员进行了比较,当他们为 C# 选择“控制台应用程序(.NET 框架)”时,他们看到了相同的框架限制,但也能够看到项目模板“控制台应用程序”用于 C#(没有“.NET Framework”),并按预期选择“.NET 5.0(当前)”作为目标框架。他们安装和更新的内容似乎没有明显不同,我们对命令提示符命令“dotnet --info”的结果匹配,并且他们没有在“关于”下列出任何“已安装产品”或在“个人组件”下列出我缺少的安装程序。

预期结果:项目模板

预期结果:框架

我已尝试卸载并重新安装所有内容,彻底安装每个工作负载以及看起来可能相关的其他单个组件,并确保“工具 -> 选项 -> 环境 -> 预览功能 -> 显示所有 .NET Core “新建项目”对话框中的模板(需要重新启动)”复选框已选中。

有谁知道我遗漏了什么步骤阻止我使用 .NET 5.0 在 C# 中创建控制台应用程序项目模板?

【问题讨论】:

你可以试试这个建议:***.com/questions/67367636/… @Richard Chang,根据我的测试,如果我安装工作负载 .NET 桌面开发 和单个组件 .NET,我可以创建 .net 5 控制台项目5.0 运行时。另外,如果你有寺庙,请选择所有语言到c#,所有项目到控制台再次检查。 @AlbertD.Kallal 我试过了,但没有解决问题。 @JackJJun-MSFT .NET 5.0 运行时在各个组件中进行了检查,为了详尽无遗,我检查了所有工作负载,包括 .NET 桌面开发。当我将过滤器设置为 C# 和 Console 时,出现的唯一项目模板是“Console App (.NET Framework)”和“Workflow Console Application”。 @NPinheiro 我实际上已经尝试选择所有这些(为重复项选择最新的),即使这样也不能解决问题。除此之外,我尝试在新虚拟机上进行常规安装,但问题没有发生(确实出现“控制台应用程序”),所以这不是我选择安装的问题,而是特别是我的机器中的一些配置问题。 【参考方案1】:

背景——微软有意选择的这个改变/破坏问题你可以阅读更多here和issue reported here但是你可以用下面列出的2个选项来解决这个问题,即A)启用它 em> OR B) 通过修复工具将其添加到 VS

建议清除 VStudio Cache's -- 在重新/启动 VS 之前杀死 dev processclear cache

在 powershell 中以 admin 身份运行此 cmd

Get-Process devenv | Foreach-Object $_.CloseMainWindow() | Out-Null

然后 DELETE ItemTemplatesCacheProjectTemplatesCache 文件夹条目。教授等等。C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE.


现在请继续执行这些步骤/选项


选项 1: 您可能必须 enable 这个选项...

Tools > Options > Preview Features > “Show all .NET Core templates in the New project dialog (requires restart)”.


选项 2: Install 通过 Visual Studio Installer 就像这样..

您可以使用 repair VS 安装缺少的工作负载(这也将更新安装程序)并确保检查您选择的可选包想要从 VS Installer 工具请看this


安装程序启动后,检查是否为桌面和控制台选择了 .NET Core 工作负载。如下所示。在右侧窗格中,您需要选中正确的框

清除 Visual Studio 组件缓存(和可选的所有模板

现在,如果您已经按照上述步骤进行操作,那么在 Visual Studio 安装程序中验证您是否选中了右上角的“.net-Desktop development”复选框:删除缓存并恢复强>

即您可以在 VS2017/2019 中 restore the template 然后再试一次。

杀死开发进程首先运行这个Get-Process devenv | Foreach-Object $_.CloseMainWindow() | Out-Null

请参考以下步骤:

    DELETE ItemTemplatesCacheProjectTemplatesCache 文件夹 Ent.Prof。版本等。C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE. & C:\Users\<USERNAME>\AppData\Local\Microsoft\VisualStudio\16.0_93de0ddd 在命令提示符下,导航到 devenv.exe 的位置。此文件位于 \Common7\IDE 中。 键入/运行此命令 devenv /installvstemplates 并按 Enter。

仅供参考 - 您的 templates cache 在这里,包含以模板文件夹中存档的 zip 文件命名的文件夹。 您需要管理员权限才能进行编辑/delete

//templates cache Microsoft

 %AppData%\Microsoft\VisualStudio\some_version\ItemTemplatesCache\

//用于验证、修复/重装或删除的模板路径

 %USERPROFILE%\Documents\Visual Studio 2019\Templates\ProjectTemplates
 %USERPROFILE%\Documents\Visual Studio 2019\Templates\ItemTemplates
 %ProgramFiles(x86)%\Microsoft Visual Studio\2019\<edition>\Common7\IDE\ItemTemplates\
 %ProgramFiles(x86)%\Microsoft Visual Studio\2019\<edition>\Common7\IDE\ProjectTemplates\

选项 3: 调试您的环境。 Template Config folder

检查/诊断版本:

运行这个dotnet --version 安装正确的核心版本https://dotnet.microsoft.com/download/dotnet/5.0 更多here 这个dotnet new -u会告诉你安装了哪些模板,你可以卸载,清除包缓存,重启,用修复工具重新安装。

下载并运行collect.exe - https://aka.ms/vscollect - 并将在 %TEMP%\vslogs.zip 中创建的日志文件与github上的 MS 共享

仅供参考 - 这就是您在 Visual Studio 中的模板文件夹结构应该是什么样子。

└───mytemplate
    │   console.cs
    │   readme.txt
    │
    └───.template.config
            template.json

【讨论】:

感谢您的回复。建议的所有内容都已检查,但未解决问题(一些在 OP 中概述)。我已经尝试了删除/安装/修改/修复的所有组合,包括检查所有可能的工作负载和组件。我们可以排除在设置中遗漏了一个步骤,因为我能够让控制台应用程序出现在另一台机器上,所以它特定于我机器的现有设置。我已经将版本详细信息与没有此问题的机器进行了比较,并且它们匹配。我还可以在技术上创建一个带有变通方法的 .NET 5 控制台应用程序,所以这只是一个项目模板显示问题。 @RichardChang 这很奇怪.. 但我建议您直接在 MS 团队中提及它github.com/dotnet/sdk/issues/17097 .. 这可能是一个注册表问题。我将添加更多详细信息 - 稍后会为您进行深度故障排除,但它涉及模板 JSON 文件和配置文件。【参考方案2】:

最终手动或使用this extension 清除 MEF 组件缓存。

但很可能在C:\Users\USERNAME\AppData\Local\Microsoft\VisualStudio\16.0_93de0ddd 的用户缓存中有问题,其中特别包括InstalledTemplates.jsonprivateregistry.bin

尝试重命名(或删除)文件夹,(或两个提到的文件之一以缩小问题范围),同时关闭 VS,然后重新启动 VS。只需确保您安装了正确的工作负载和来自 VS 的 .net 5。

【讨论】:

感谢您的回复。已经尝试过使用不同/所有工作负载进行安装、卸载、修复和修改的所有变体。我可以在其他机器和虚拟机上做同样的事情而没有问题,所以这不是由于安装过程的疏忽造成的。 @RichardChang 您是否尝试按照我的回答中指定的方式删除用户缓存?【参考方案3】:

虽然很难判断 VS 或本地环境到底出了什么问题,但应该可以使用 dotnet cli 临时创建项目:

dotnet new console --output <project-dir>

如果您想将其添加到现有的解决方案中运行

dotnet sln <solution-name>.sln add <project-dir>

控制台应用程序项目文件非常简单,因此您甚至可以手动创建它,或者从任何现有模板创建项目并将内容替换为以下解决方法:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>

</Project>

也许您可以尝试的另一件事是以管理员身份运行 VS 安装程序或确保它可以安装和访问所有必需的组件。

【讨论】:

感谢您的回复。是的,我一直在使用这种解决方法,所以问题只是弄清楚为什么该选项没有出现在 Visual Studios UI 中。我尝试以管理员身份运行安装程序,但发生了同样的问题。 @RichardChang 您是否尝试过从系统中删除所有 .net 核心 sdk 及其所有痕迹,卸载带有所有痕迹的 VS,然后重新安装?【参考方案4】:

我检查了一下,我能够使用 Visual Studio 版本 16.9.2 和 SDK 版本 5.0.201 创建 dotnet5.0 控制台应用程序。我认为您的端存在一些安装冲突。您可以尝试卸载 SDK 并重新安装 Visual Studio 或将其更新到最新版本并下载最新的 SDK。还要检查 SDK 是否安装在您的系统上

C:\Program Files\dotnet\sdk[你的 SDK 版本]\

【讨论】:

【参考方案5】:

我在 VS2022 Preview 7.0 上遇到了这个问题。

在执行dotnet --version 后,我得到了5.0.100-preview.6.20318.15,我一定是前段时间安装了它,它仍然在系统路径上。于是我下载并安装了dotnet6.0.100-rc.2.21505.57

之后 VS 开始正常工作。


编辑:我很幸运。我现在在VS2022 17.1.0 Preview 1.1 上运行.Net 5.0.403.Net 6.0.100 的生产版本。 问题又莫名其妙地回来了。我没有故意改变任何东西。我最好的猜测是几周前我升级 VS2022 时它坏了,直到现在我才意识到。

我已经彻底卸载了所有东西。 VisualStudio 2019 和 2022 以及所有 dotnet core 和 5.0 和 6.0。我什至得到了多年前我不知道的所有残余物。然后我重新安装了所有东西,但仍然没有 Net5.0 或 Net6.0 模板。

我注意到 .NET 模板包的卸载字符串有一个 /I 用于安装前缀,而不是 /X 用于卸载。我想这可能意味着这些软件包实际上并没有安装,所以我尝试手动运行它们,但失败了。我没有想法。

到目前为止,我必须在 Visual Studio 中创建 net5.0 或 net6.0 项目的唯一成功方法是下载 Classic Console Template,它提供了足够的引导来实际创建新项目。

【讨论】:

【参考方案6】:

当我看到你的帖子时,我有 VS 2019 版本 16.9.5。我正在为我的示例项目使用控制台应用程序。我已经尝试过了,并且能够实现您正在寻找的东西。我建议将您的 VS 更新到 16.9.5 并试一试。


我的 VS 2019 版本:


在 VS 2019 16.9.5 中创建控制台应用:


终于创建了一个控制台应用项目,目标框架为.net 5.0

【讨论】:

我们知道它与 VS 16.9.4 无关,因为当 Richard 在新的 VM 中安装 16.9.4 时,问题就消失了。所以这是特定于他当前的操作系统、注册表或配置的东西。

以上是关于在 Visual Studio 2019 中找不到 .NET 5.0 控制台应用程序项目模板的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 2019 的 PowerShell 窗口中找不到 ILDASM

在 Visual Studio 2019 中找不到 .NET 5.0 控制台应用程序项目模板

在 Visual Studio Code 中找不到 Flutter Inspector / Toggle Debug Paint

包括在 Visual Studio 2015 中找不到库

在 Visual Studio Ultimate 中找不到打开网站

C++ 调试在 Visual Studio 中找不到“=”运算符