You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2019无法识别ECC SHA384代码签名证书,VSTO项目如何完成签名?

是否为Visual Studio已知限制

该问题属于Visual Studio 2019 16.x版本的已知限制:其内置项目签名模块的证书筛选逻辑仅默认适配RSA算法的代码签名证书,未做ECC(椭圆曲线)算法证书的兼容支持,尤其是基于SHA384哈希的ECC代码签名证书无法被识别,因此会弹出「无符合要求的证书」的提示。

手动生成后签名实现方案

你可以通过配置后期生成事件调用官方signtool.exe工具完成同等签名效果,操作步骤如下:

  • 前置准备:确认DigiCert ECC代码签名证书已正确导入当前用户的个人证书存储区,或已持有证书PFX文件及对应访问密码;安装Windows 10/11 SDK获取高版本signtool.exe(旧版本SignTool不支持ECC算法签名)。
  • 配置后期生成事件:
    1. 右键VSTO项目,依次选择「属性」-「生成事件」
    2. 在「后期生成事件命令行」输入框中填入对应签名命令:
      • 调用证书存储区证书签名:
      "你的SignTool完整路径" sign /n "你的证书主题名称" /fd SHA384 /t http://timestamp.digicert.com $(TargetPath)
      "你的SignTool完整路径" sign /n "你的证书主题名称" /fd SHA384 /t http://timestamp.digicert.com $(TargetDir)$(TargetName).vsto
      "你的SignTool完整路径" sign /n "你的证书主题名称" /fd SHA384 /t http://timestamp.digicert.com $(ProjectDir)Properties\app.manifest
      
      • 调用本地PFX文件签名:
      "你的SignTool完整路径" sign /f "你的PFX文件完整路径" /p "你的PFX访问密码" /fd SHA384 /t http://timestamp.digicert.com $(TargetPath)
      "你的SignTool完整路径" sign /f "你的PFX文件完整路径" /p "你的PFX访问密码" /fd SHA384 /t http://timestamp.digicert.com $(TargetDir)$(TargetName).vsto
      "你的SignTool完整路径" sign /f "你的PFX文件完整路径" /p "你的PFX访问密码" /fd SHA384 /t http://timestamp.digicert.com $(ProjectDir)Properties\app.manifest
      
  • 签名验证:项目生成完成后,右键签名后的文件,选择「属性」-「数字签名」即可查看签名信息,确认证书、哈希算法、时间戳均正确即可。
  • 补充说明:如果signtool.exe路径已加入系统环境变量,可省略工具的完整路径,直接写signtool即可。

内容的提问来源于stack exchange,提问作者EylM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 13:15:05