如何在Visual Studio 2019中定义发布后事件实现.NET 5程序自动签名
发布后自动触发事件+数字签名实现方案
Visual Studio 2019完全支持定义发布完成后触发的事件,针对.NET 5 SDK风格的项目,只需修改项目配置即可实现发布后自动对单文件exe进行数字签名,无需额外插件。
操作步骤
- 第一步:编辑项目配置文件
在VS解决方案资源管理器中右键你的.NET 5桌面项目,选择「卸载项目」,再次右键选择「编辑 XXX.csproj」,打开项目的XML配置文件。 - 第二步:添加发布后签名的自定义任务
在<Project>根节点内部任意位置添加如下配置,替换对应的自定义参数即可:<Target Name="SignPublishedSingleFile" AfterTargets="Publish"> <!-- 调用signtool对发布完成的单文件exe签名 --> <Exec Command=""C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\signtool.exe" sign /f "C:\你的证书存储路径\cert.pfx" /p 你的证书密码 /t http://timestamp.digicert.com "$(PublishDir)\你的应用名.exe"" /> </Target> - 第三步:验证配置
保存.csproj文件,右键项目选择「重新加载项目」,触发一次发布流程,发布完成后查看输出目录的exe属性,确认数字签名已生效。
注意事项
- signtool路径适配:上述示例的signtool是Windows 10 SDK自带的工具,路径中的版本号
10.0.19041.0需要替换为你本地安装的SDK版本号。 - 路径空格处理:所有包含空格的路径都需要用双引号包裹,XML配置中双引号需要转义为
"。 - 安全优化:不要在配置文件中明文存储证书密码,可将密码存储到系统环境变量,将配置中的密码部分替换为
%环境变量名%即可,避免敏感信息泄露。 - 命令行适配:该配置同时适配VS界面发布和
dotnet publish命令行发布两种场景,无需额外参数。
内容的提问来源于stack exchange,提问作者askolotl
相关产品推荐
相关产品推荐

