我已经创建了一个构建后事件,以在使用以下构建脚本成功构建之后对应用程序执行代码签名。如何在没有硬编码路径的Visual Studio 2013的后期构建事件中使用signtool?
copy $(TargetPath) $(TargetDir)SignedApp.exe
signtool sign /t http://timestamp.verisign.com/scripts/timestamp.dll /a $(TargetDir)SignedApp.exe
我得到错误“signtool”不被识别为一个内部或外部的命令。 所以看起来用于构建事件的路径并不指向signtool实用程序。当我运行VS2013的x86原生工具命令提示符我可以运行signtool,因为它包含指向一个路径:
C:\Program Files (x86)\Windows Kits\8.1\bin\x86
我可以硬编码路径到编译事件
"C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool" sign /t http://timestamp.verisign.com/scripts/timestamp.dll /a $(TargetDir)SignedApp.exe
但是,这似乎不可移植。如何获得为本机命令提示符定义的相同路径,以供我的构建后事件使用,而无需对其进行硬编码?我查看了宏列表,但没有发现任何有用的东西。
1.在你的repo中包含signtool 2.包含一个通过为你定位signtool进行签名的exe,也许https://github.com/Microsoft/vswhere可以帮助 3.安装一个构建服务器,固定路径(这是我最终做的) 4.添加一个不在您的VCS中的批处理文件,每个用户必须编辑(理想情况下一次) –