Visual Studio无法选择Windows应用,WPF程序被强制为控制台应用
WPF程序强制弹出控制台窗口的解决办法
问题场景
明明在项目文件里设置了<OutputType>WinExe</OutputType>,但Visual Studio还是把WPF项目识别成控制台应用,不管是在VS里运行还是直接打开生成的EXE,都会弹出控制台窗口。之前只在Microsoft.NET.Sdk.Web项目里见过类似问题,现在用Microsoft.NET.Sdk也碰到了。
项目配置如下:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net7.0-windows</TargetFramework> <Nullable>enable</Nullable> <UseWPF>true</UseWPF> <ImplicitUsings>true</ImplicitUsings> <LangVersion>preview</LangVersion> <StartupObject>MyApp.App</StartupObject> <ApplicationIcon>Windows\Disk.ico</ApplicationIcon> <DisableWinExeOutputInference>true</DisableWinExeOutputInference> <OutputType>WinExe</OutputType> </PropertyGroup> </Project>
项目属性窗口里显示输出类型被选为控制台应用程序。
解决步骤
删掉
<DisableWinExeOutputInference>true</DisableWinExeOutputInference>
这个配置是用来阻止SDK自动推断WinExe类型的,正好和需求相反,删掉它就不会干扰输出类型的设置了。调整配置顺序,确保
<OutputType>WinExe</OutputType>在<UseWPF>true</UseWPF>之后
SDK可能会根据UseWPF的值自动覆盖输出类型,把OutputType放在后面能保证自定义设置生效:<PropertyGroup> <TargetFramework>net7.0-windows</TargetFramework> <Nullable>enable</Nullable> <ImplicitUsings>true</ImplicitUsings> <LangVersion>preview</LangVersion> <StartupObject>MyApp.App</StartupObject> <ApplicationIcon>Windows\Disk.ico</ApplicationIcon> <UseWPF>true</UseWPF> <OutputType>WinExe</OutputType> </PropertyGroup>清理重建项目
先右键项目选择「清理」,再手动删除项目目录下的bin和obj文件夹,最后重新生成项目,确保旧编译缓存被清除。手动修改VS项目属性
右键项目→属性→应用程序,把输出类型手动改成「Windows应用程序」,保存后重启Visual Studio,避免VS缓存旧配置。
内容的提问来源于stack exchange,提问作者Mark Fairchild
相关产品推荐
相关产品推荐

