我是一名有用的助手,可以为您进行文本翻译。以下是需要翻译的内容:
我目前在a.exe的csproj文件上有一个后置构建事件:
然而,这将签署所有dll,包括thirdParty.dll,并且存在尝试签署任何非托管DLL的风险。
现在最简单的解决方案是在csproj文件上放置一个后生成事件用于b.dll,并删除上面显示的for循环。但实际上,我们有许多程序集,可能会添加更多。我不想依赖其他开发人员记住添加后生成步骤来对任何新程序集进行Authenticode签名。
我可以使用此处描述的PowerShell脚本仅签署托管程序集,但仍将在上述示例中签署thirdParty.dll。
如何枚举并签署仅包含自己代码的程序集?
我有一个具有以下结构的.Net解决方案:
- a.exe
- b.dll
- thirdParty.dll
我目前在a.exe的csproj文件上有一个后置构建事件:
"C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe" sign /t http://timestamp.globalsign.com/scripts/timestamp.dll /a $(TargetPath)
for %%f in ("$(ProjectDir)$(OutDir)*.dll") do "C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe" sign /t http://timestamp.globalsign.com/scripts/timestamp.dll /a $(TargetPath) %%f
然而,这将签署所有dll,包括thirdParty.dll,并且存在尝试签署任何非托管DLL的风险。
现在最简单的解决方案是在csproj文件上放置一个后生成事件用于b.dll,并删除上面显示的for循环。但实际上,我们有许多程序集,可能会添加更多。我不想依赖其他开发人员记住添加后生成步骤来对任何新程序集进行Authenticode签名。
我可以使用此处描述的PowerShell脚本仅签署托管程序集,但仍将在上述示例中签署thirdParty.dll。
如何枚举并签署仅包含自己代码的程序集?