当我使用项目属性中所示的
strong name key file
时,它要求所有引用的程序集也使用此类类似的签名。
但我想要的是使用 WinDDK 进行签名
Signtool.exe
。我已经手动执行此操作,但我还想调试签名程序集,最好的方法是将签名包含在构建中,可能是一个AfterBuild
步骤。
问题是我不知道如何创建
AfterBuild
步骤
你把事情搞混了。强名称与使用 Signtool.exe 添加到二进制文件中的证书不同。也不要求依赖程序集具有证书或需要匹配。签署调试版本也没有意义,只有您的客户对其感兴趣。您已经知道您可以相信自己。 msbuild 已支持运行 sn.exe 为程序集指定强名称。
*.csproj
文件中:
<Target Name="AfterBuild">
<Exec Command="sign.bat" />
</Target>
然后我在项目根文件夹中添加了一个
sign.bat
文件
我在一些博客
中 >> Build Events >> Post-build 事件命令行
if $(Configuration) == Release C:\"Program Files (x86)"\"Windows Kits"\10\bin\10.0.22621.0\x64\signtool.exe sign /tr http://timestamp.globalsign.com/tsa/r6advanced1 /td sha256 /fd sha256 /a $(TargetPath)
if
条件仅在需要时签署
Release。