作者:梁敏

之前在win7上打包windows程序版本时,偶尔会遇到签名时间戳会失败的场景。之前解决方法一般是多试一次,或者尝试换一个时间戳服务器就可以了。

最近版本提测上线,在使用win7打包版本时,总是签名时间戳失败了,几乎是每次都不行。但是尝试替换各种服务器,还是不行。另外使用wosigncode.exe的工具,使用相同的时间戳服务器,都是可以成功的。说明不是时间戳服务器的问题。记得之前的项目打包时,也有在win7下有时候签名时间失败的,在win10上是ok的。之前所在团队还专门找了一台win10用来打包,同时自己也是用的是win10系统,所以也没有深入了解当时的原因。现在的项目打包在win7上也出现了签名时间戳失败的情况,之前是偶尔,最近是必现了。但是最近版本上线,为此升级win10来不及,还比较耗时。还是耐心的看看有没有什么解决办法吧,给自己半天时间看能否解决。

签名时间戳的命令如下:

signtool sign /f MyCert.pfx /t http://timestamp.verisign.com/scripts/timstamp.dll MyFile.exe

或者

signtool timestamp /t http://timestamp.verisign.com/scripts/timstamp.dll MyFile.exe

运行后报错如下:

SignTool Error: An error occurred while attempting to timestamp: MyFile.exe

SignTool Error: An unexpected internal error has occurred.

Error information: "SignerTimeStamp() failed." (-2147024895/0x80070001)

官方有提到这里的错误码0x800*****,和我这个类似,如下:

但是没有对我遇到的这个错误码0x80070001的问题说明。那就搜这个错误码有没有相关的案例:“signtool 0x80070001”,但是遇到同样错误码的几乎没有。google大法,各种搜索,SignerTimeStamp() failed,SignTool Error。寻求到的解决方案,有说管理员身份运行,有说时间戳服务器换一换,有说...。不过,都不行。

后来,转变思路,在C盘搜了一下本机的signtool.exe,

C:\Program Files (x86)\Windows Kits\8.0\bin\x86

C:\Program Files (x86)\Windows Kits\8.1\bin\x86

C:\Program Files (x86)\Windows Kits\10\bin\x86

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin

搜索了下,拿来替换到我们项目里之前保存的signtool.exe试一试吧。

在逐一替换了之后,发现使用C:\Program Files (x86)\Windows Kits\8.1\bin\x86下的signtool.exe打包总是成功的。查看我们项目里的打包单独引用的signtool.exe是windows Kits的10.0版本的,这也就说明了之前项目在win10上签名成功,win7容易失败。而我现在使用的是vs2013在win7上生成的程序,使用8.1低版本的更匹配。

我们项目使用的是VS2013,接下来使用VS2013的Visual Studio Tools下的VS2013 x86 本机工具命令提示工具,输入signtool命令操作,发现也是成功。

那接下来看看VS2013工具使用的是哪个版本路径下的signtool吧。在

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\路径下的VCVarsQueryRegistry.bat文件,写明了工具窗口调用的windowsSDK的路径:

从脚本中得知,是从注册表中获取windowsSDK 8.1的安装路径,那也就是说VS2013工具是使用C:\Program Files (x86)\Windows Kits\8.1\bin\x86路径下的signtool.exe的。那我们也用这个签名时间戳应该没问题了,把该文件拷贝到我们项目后验证是可以正常使用了。顺便看了下,VS2015的工具在没有指定的情况下,是优先使用WindowsSDK 10,没有安装10会使用WindowsSDK 8.1版本的。

好了,问题解决了,原来最后解决方法如此简单低级。不过,貌似工作中解决的非必现、各种疑难问题,其背后都是一些低级的简单的方法,重要的是问题解决了,以及过程中分析解决问题的思路,不是吗?

以此记录下最近遇到的签名时间戳失败的解决方法。有描述不准确的地方,欢迎大家指正~

本文来自网易实践者社区,经作者梁敏授权发布

时间戳服务器显示invalid,signtool签名时间戳失败的解决方法相关推荐

  1. 百度云服务器BCC 调用百度人工智能API失败的解决方法

    站在双十一的尾巴上,抱着测试的心态购买了百度云服务器(配置:2核4G 1M带宽 358元),将我在阿里云的微信机器人迁移过去,结果无法解析语法,调用百度AIPNLP失败,检测发现是因为无法正确解析百度 ...

  2. 刀剑乱舞服务器显示空,刀剑乱舞online常见问题及解决方法

    刀剑乱舞online常见问题及解决方法.刀剑乱舞游戏一出来,很多人都在找常见问题及解决方法.那下文就让小编跟大家讲刀剑乱舞online常见问题及解决办法.伙伴们一定要来看哦! 刀剑乱舞online 新 ...

  3. WEGAME更新游戏显示连接服务器失败,wegame更新失败怎么办?腾讯wegame更新失败的解决方法...

    wegame更新失败怎么办?如果可以和wegame服务器互通,那么肯定就是自身网络或者电脑的问题了,下面由我带给大家wegame更新失败的解决方案. 腾讯wegame更新失败的解决方法 我写了一个小脚 ...

  4. 软件显示获取服务器更新失败,闪耀暖暖获取更新服务器失败的解决方法

    今天是闪耀暖暖国服正式上线的日子,很多玩家都想第一时间进入游戏试玩,但是频繁有玩家出现网络连接失败的提示,这可愁坏了很多玩家,那么出现这个问题我们要怎么解决呢?下面就跟我一起来看看闪耀暖暖获取更新服务 ...

  5. WIN10不显示sql2005服务器,Win10专业版系统安装mssql2005提示启动服务失败的解决方法...

    1.正常安装任一版本的SQL Server 2005. 2.安装到SqlServer服务的时候提示启动服务失败,这里就是关键啦,下载本文的两个附件,里面是SP4(2005.90.5000.0)版本的s ...

  6. 腾讯手游助手选择不了服务器失败,腾讯手游助手安装不了怎么办 模拟器安装失败的解决方法...

    腾讯手游助手是一款好用的手游模拟器,可以在电脑上玩手游,但是有时也会出现一些问题,那么腾讯手游助手安装不了怎么办?下面小编带来模拟器安装失败的解决方法,希望对大家有所帮助. 模拟器安装失败的解决方法: ...

  7. cf为什么一直连接服务器失败,为什么cf连接服务器失败的解决方法

    最近,超爱玩游戏的朋友表示,cf连接服务器老是失败.在网上各种百度"cf连接服务器失败的原因",还是没有找到解决方法.据他自己介绍,在连接服务器时,经常会出现连接失败的现象.这是为 ...

  8. Xshell 连接服务器失败的解决方法

    Xshell 连接服务器失败的解决方法 我使用的是Centos7.3 阿里云服务器 1.首先使用阿里云的救援连接登录到服务器上 2.先查看服务器目前开放的端口: ss -lnt 发现没有开放22端口 ...

  9. 头脑王者服务器维护,微信头脑王者请求超时及查询服务器失败的解决方法

    微信头脑王者你们知道吗?不知道也没有关系哦,以下内容是微信头脑王者请求超时及查询服务器失败的解决方法,一起来学习吧! 头脑王者请求超时怎么解决? 1.最常见的就是wifi网络环境下出现这种情况,这是因 ...

最新文章

  1. ERROR: epmd error for host 192: badarg (unknown POSIX error)
  2. UTF-8 BOM头
  3. Windows 8 :妥协的产物
  4. postman 抓包工具charles的使用
  5. 1.15 Java 9新增的不可变集合
  6. 关于python安装lxml插件的问题
  7. node异步非阻塞的杂谈
  8. 新闻发布项目——接口类(categoryTBDao)
  9. 安装和使用Ant Design Vue 图标库
  10. 热门搜索怎么实现_三个步骤教你学会,搜索引擎霸屏技术!
  11. mysql 编码php,php-MySQL的编码问题(和基础知识)
  12. 第12天--css三种定位及z-index
  13. Unity3D脚印6——模型动画
  14. Charles 弱网测试
  15. 金蝶K3系统定制国际销售日报表
  16. 新人做ASO如何快速写好关键词?
  17. 关于HTML的table表格换行一事
  18. c语言拍皮球100,童话故事——拍皮球
  19. Amlogic Linux系列(四) 视频解码分析2
  20. 我们的爱恨情仇:人性-关系-危机-和谐的科学研究

热门文章

  1. java连接mysql时区修改_java连接mysql数据库时的时区设置问题(time_zone)
  2. 计算机网络提供服务靠,计算机网络体系结构及协议之通信子网的操作方式和网络层提供的服务...
  3. php文件通常包含和一些,php函数导入与文件包含:include() 和 require() 语句的区别...
  4. html5的新特性都有什么,html5的新特性
  5. 带你入门SpringCloud服务发现 | Eurka搭建和使用
  6. Oracle(五)PL/SQL编程语言
  7. android让图片旋转
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的网上商城
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的奖助学金贷款信息管理系统
  10. 对象流java_Java中的对象流总结(必看篇)