VS 2012: Post build 中使用 Signtool.exe,对于特殊password中字符的处理方法
众所周知,在VS(Visual Studio)里面可以利用post build 进行一些类似于CMD或者批处理的操作。 最近的项目中用到了MicroSoft的SignTool工具,目的是要把一个数字签名签到一个.XAP(SilverLight编译后的文件)文件上。
背景: 由于数字签名将要过期,需要用新的签名替换之前的。信签名是从总公司的IT部门申请来的(xxx.pfx)文件,密码也是他们提供的。由于IT部门有密码保护的要求,密码要满足所谓的安全规则,IT部门同事将密码设置为带有“特殊字符” 的一个字符串 "_X%v?XXX^XX2" (X表示字母,在这里处于安全考虑,不方便把密码直接放出来:)),因而运行在post build 命令时会报错: Missing file ...
"$(ProjectDir)signtool" sign /f "$(ProjectDir)mysign.pfx" /p _X%v?XXX^XX2 "$(TargetDir)ClientApplication.xap"
解决方案: 查了下批处理的特殊字符,发现需要用使用%或者^来处理特殊字符(例如,在特殊字符%前面加上一个%来正确输出%),并且需要将含有特殊字符的字符串用""括起来。 修改后的post build命令如下:
"$(ProjectDir)signtool" sign /f "$(ProjectDir)mysign.pfx" /p "_X%%v?XXX^XX2" "$(TargetDir)ClientApplication.xap"
使用修改后的post build 命令再次编译,结果正确。。。 good job!!
另外附上一个关于处理批处理特殊字符的链接,希望有所帮助:http://www.hackbase.com/tech/2009-09-27/56481.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现