首页 > 解决方案 > 尽管在 Visual Studio 中使用了带有 Microsoft.NET.Sdk.Web 的 OutputType WinExe,但仍显示控制台窗口

问题描述

如果我添加<OutputType>WinExe</OutputType>到新的 ConsoleApp 应用程序将启动,则运行 Main 方法并再次关闭应用程序。

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <OutputType>WinExe</OutputType>
        <TargetFramework>netcoreapp3.1</TargetFramework>
    </PropertyGroup>
</Project>

如果我将 Sdk 更改为Microsoft.NET.Sdk.Web并再次启动应用程序,则会打开一个控制台窗口。

为什么使用<Project Sdk="Microsoft.NET.Sdk.Web">会导致控制台窗口打开?有没有办法防止这种情况?

编辑:似乎只有在 Visual Studio 中启动应用程序时才会打开控制台窗口。如果我在没有 Visual Studio 的情况下运行 exe,则该应用程序按预期作为后台进程运行。

Edit2:我会尝试改写这个问题:

使用<Project Sdk="Microsoft.NET.Sdk.Web">会导致将一堆道具和目标文件包含到项目中。控制台窗口打开的原因一定是在某处。

标签: c#visual-studioasp.net-core.net-coremsbuild

解决方案


我在 GitHub 上打开了一个问题,并确认这是 Visual Studio 中的一个错误。

见:https ://github.com/dotnet/project-system/issues/6613


推荐阅读