Ral*_*ann 11 deployment wpf .net-core-publishsinglefile .net-6.0 visual-studio-2022
我需要在 Windows PC 上执行 .Net WPF 程序的单个 exe 文件。该文件必须使用代码身份验证证书进行签名。有了这个证书,exe 文件就可以在外部 Windows 系统上执行,而无需系统警告或用户将部署复制到受信任位置后的管理权限。
我可以使用 VS2019 和 .Net 4.7.2 来完成此操作。但我想继续使用 VS2022 和 .Net 6.0。下面是一个使用 VS2019 的简单示例。您可以跳过signtool,因为在VS 2022中已经无法创建单个exe文件。VS 2019 和 .Net 5.0 过去也发生过同样的情况,但我找到了一些帖子,其中包含 WPF 的单个 exe 文件将来首先可以与 .Net 6.0 一起使用的信息。现在,在 .Net 6.0 和 VS2022 发布后,我再次尝试。对于单个文件的部署辅助有更多选项可用,但没有任何东西会创建单个 exe 文件!
VS2019中的工作流程:
我用.Net 6在VS2022中测试流程
如果我复制整个文件夹以共享并运行应用程序。我可以删除 WPF6Test.deps.json 和 WPF6Test.pdb,但我需要 3 个文件(WPF6Test.dll、WPF6Test.exe、WPF6Test.runtimeconfig.json)。
我返回到 VS2022 并添加带有更改的 profile 选项的附加 pubxml 文件(独立于部署模式、创建单个文件、激活编译准备运行)。但现在我得到7个文件(D3DCompiler_47_cor3.dll、PenImc_cor3.dll、PresentationNative_cor3.dll、vcruntime140_cor3.dll、WPF6Test.exe、WPF6Test.pdb、wpfgfx_cor3.dll)。
我需要做什么才能获得单个 exe 文件?如何在发布过程中签署此 exe 文件?
Ric*_*Web 17
您需要在项目文件中设置“IncludeAllContentForSelfExtract”,或者如果您使用 CLI 构建“IncludeNativeLibrariesForSelfExtract”。
即使您勾选或设置单个 exe,如果您正在生成一个自包含的 exe,它也不会包含本机库。
项目文件 (your-project.csproj)
<IncludeAllContentForSelfExtract>true</IncludeAllContentForSelfExtract>
Run Code Online (Sandbox Code Playgroud)
.Net CLI
dotnet publish -r win-x64 /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true --self-contained true
Run Code Online (Sandbox Code Playgroud)
编辑您的发布配置文件设置,
保存配置文件设置并再次尝试发布。这应该会生成一个 exe 文件。
如果您选择部署模式为“自包含”或“独立”,它将生成您提到的 7 个文件。
希望这有助于发布到单个文件!
归档时间: |
|
查看次数: |
7289 次 |
最近记录: |