在我的安装/部署项目的 PreBuild 事件中使用 VB 脚本解决了这个问题,该脚本运行了我项目的 OBJ 文件夹中的所有 .DLL 和 .EXE 文件并运行了 signtool 命令(包括 SDK 的完整路径)
Sub ShowSubFolders(keyFile, fFolder)
Set objFolder = objFSO.GetFolder(fFolder.Path)
Set colFiles = objFolder.Files
For Each objFile in colFiles
If UCase(objFSO.GetExtensionName(objFile.name)) = "DLL" Or UCase(objFSO.GetExtensionName(objFile.name)) = "EXE" Then
'Wscript.Echo objFile
Dim objResult
Set objShell = WScript.CreateObject("WScript.Shell")
objResult = objShell.Run("""C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\signtool"" sign /f " & keyFile & " """ & objFile & """", 0, True)
End If
Next
For Each Subfolder in fFolder.SubFolders
Call ShowSubFolders(keyFile, Subfolder)
Next
End Sub