在 Visual Studio 2019 中找不到 .NET 5.0 Console App 项目模板

如何解决在 Visual Studio 2019 中找不到 .NET 5.0 Console App 项目模板

我目前正在尝试在 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)。

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

实际结果:项目模板

Actual Outcome: Project Templates

实际结果:框架

Actual Outcome: Frameworks

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

预期结果:项目模板

Expected Outcome: Project Templates

预期结果:框架

Expected Outcome: Frameworks

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

有谁知道我错过了哪一步阻止我使用 .NET 5.0 在 C# 中创建控制台应用程序项目模板?

解决方法

背景 -- 此更改/破坏,Microsoft 故意选择的问题您可以阅读更多 hereissue reported here,但您可以使用下面列出的 2 个选项解决此问题,即 A) 启用它 或者 B) 通过修复工具将它添加到 VS

建议清除 VStudio 缓存的 -- 在重新/启动 VS 之前杀死 dev processclear cache

在powershell中以admin身份运行这个cmd

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

然后DELETE ItemTemplatesCacheProjectTemplatesCache 文件夹ent。教授等等。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)”.

Enable the option


  • 选项 2: Install via Visual Studio Installer 像这样..

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

repair the VS install


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

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

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

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

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

请参考以下步骤:

  1. 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
  2. 在命令提示符中,导航到 devenv.exe 的位置。此文件位于 \Common7\IDE。
  3. 键入/运行此命令 devenv /installvstemplates 并按 Enter。

.Net Desktop Dev Workload

仅供参考 - 您的 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.0heredotnet new -u 会告诉您安装了哪些模板,您可以使用修复工具卸载、清除包缓存、重新启动和重新安装。

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

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

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

,

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

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

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

,

虽然很难判断 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 安装程序或确保它可以安装和访问所有必需的组件。

,

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


我的 VS 2019 版本:

enter image description here


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

enter image description here


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

enter image description here

,

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?