发布是通过 docker 完成的。
Docker 文件
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-nanoserver-1809 AS build
// restore
...
// build
..
// publish
RUN dotnet publish --no-build -c Release /p:PublishSingleFile=true -r win-x64 --self-contained true -o C:/dist
.csproj
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<UseWPF>true</UseWPF>
<ApplicationIcon>Common\Images\favicon.ico</ApplicationIcon>
<StartupObject>Dtail.Platform.Launcher.App.App</StartupObject>
</PropertyGroup>
...
</Project>
预期行为:
由于 OutputType
设置为 WinExe
,它应该隐藏控制台主机 ( source )
实际行为:
应用程序随控制台窗口一起打开
最佳答案
一些依赖项会强制打开控制台窗口,例如 Selenium 。检查您的依赖项是否有自己的隐藏窗口的方法。
关于c# - 用 WinExe 发布一个 wpf 应用程序仍然打开一个控制台主机窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65396020/