【问题标题】:Console App (.Net Standard) not listed控制台应用程序(.Net 标准)未列出
【发布时间】:2020-06-13 10:28:19
【问题描述】:

我正在使用 Visual Studio 2017 并尝试创建“控制台应用程序(.Net 标准)”。当我执行“文件 -> 新项目...”时,它不再出现在我的可用项目列表中

几分钟前它就在那里。在我创建了一个“控制台应用程序(.Net Core)”之后它就消失了,然后删除了那个应用程序,因为我意识到我真的想要一个标准应用程序。

我通过将其从 Visual Studio 中删除,然后转到文件系统并删除它来删除它。

我尝试运行安装程序并更新 2017 安装。这没有帮助。

如何获得“控制台应用程序(.Net 标准)”作为项目类型来创建?

[编辑] 我已经关闭并重新启动了 Visual Studio。

[编辑] 我试图运行devenv /installvstemplates,但没有找到 devenv 命令。我发现它位于:C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE。调用它的首选方式是什么? [添加到路径或其他方式?]

[编辑] 我是这样跑的:"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe" /installvstemplates 得到了一个The operation could not be completed. The requested operation requires elevation.

[编辑] 我是这样运行的:runas /user:Administrator "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe" /installvstemplates 并收到了 RUNAS 使用帮助消息。

[编辑] 我在具有管理员权限的 powershell 窗口中运行了命令并得到了这个:

PS C:\Windows\system32> 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv' /installvstemplates
At line:1 char:75
+ ... iles (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv' /installv ...
+                                                                  ~
You must provide a value expression following the '/' operator.
At line:1 char:75
+ ... \Microsoft Visual Studio 14.0\Common7\IDE\devenv' /installvstemplates
+                                                        ~~~~~~~~~~~~~~~~~~
Unexpected token 'installvstemplates' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : ExpectedValueExpression

[EDIT] 发现我需要运行带有 & 前缀的引用命令。现在我可以运行 devenv。

[编辑] 在发布此问题后,我决定需要一个“控制台应用程序(.Net 标准)”:Project Type for simple headless windows application

【问题讨论】:

  • 你试过关闭你的Visual Studio,以管理员身份打开终端(cmd),输入:devenv /installvstemplates
  • 我也是来这里的,因为VS2017在“Get Started”中隐藏了Framework Console App,同时创建一个dotnet core app,最明显的过程是“dotnet core”->“console app”

标签: visual-studio-2017


【解决方案1】:

创建 .NET Standard 控制台应用程序没有意义。

您可以将 .NET Standard 视为 C# 中的接口。 .NET Standard是一个接口,在.NET Framework、.NET Core等平台上都有具体的实现。 .NET Standard 对类库有意义,但控制台应用程序需要在特定的具体实现上实际运行。

因此,.NET Standard 控制台应用程序没有 Visual Studio 项目模板。您可以为 .NET Framework 或 .NET Core 创建控制台应用,然后使用 .NET Standard 类库。

【讨论】:

  • 你是说当我之前看到“控制台应用程序(.Net 标准)”作为选项时,这只是我的想象吗? [我不会被肯定的回答侮辱]。
  • @MichaelPotter 也许吧。您可能已经看过 Class Library .NET Standard,只是记错了。或者,也许他们有一个实际使用 .NET Core 或 .NET Framework 的模板,即使它被标记为 .NET Standard。我不知道,但我安装了 VS 2017 15.3 和桌面堆栈,我也没有控制台应用程序 .NET 标准模板。
  • 好吧,我在质疑我的理智,但目前我没有其他解释。我将给它一天的时间,看看是否有人有更好的解释,然后给你赏金。
  • 但是 .net 标准可执行文件似乎在 .net 框架和 .net 核心下都可以正常运行。因此,想要能够做到这一点并不是没有意义的。似乎VS doesn’t know how to make both Assembly.exe.config and Assembly.runtimeconfig.json for the same output file。但只要您的依赖项是纯的并且没有根据您的运行时目标被替换,它就应该工作。
  • @Varin 那么您所需要的只是一个您在它们之间共享的 .NET Standard 类库。你不需要按照 Binki 说的去做。
【解决方案2】:

我的代码看起来像这样

using System;
namespace TriNitroToluene
{
    public static class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Console.Read();
        }
    }
}

在项目属性中,将输出类型设置为控制台应用程序,并将扩展名更改为EXE。就是这样!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    • 2016-08-21
    • 1970-01-01
    • 2019-11-08
    • 2010-11-10
    • 1970-01-01
    相关资源
    最近更新 更多