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

发布Xamarin UWP应用时签名失败,报错0x800700C1求助

解决Xamarin UWP MSIX打包SignTool Error 0x800700C1的方案

问题说明

开发的Xamarin UWP应用在本地签名后可正常运行,但创建MSIX包用于公司内部分发时,持续触发SignTool错误:

SignTool Error: SignedCode::Sign returned error: 0x800700C1

尝试过本地证书库证书、自动生成的TemporaryKey,无论使用同一密钥还是混合密钥签名,错误均未解决。手动运行SignTool调试时,证书筛选环节正常(EKU、过期时间、私钥检查后均剩余1个有效证书),但附加证书操作完成后仍报错。

可行解决步骤

  • 重新生成MSIX包,排除文件损坏
    打包过程可能出现文件损坏或缓存异常,按以下操作重置:

    1. 右键项目选择「清理」
    2. 删除项目目录下bin和obj文件夹的所有内容
    3. 重新生成整个解决方案,再尝试打包
  • 确认证书具备代码签名权限
    部分证书虽能通过筛选,但可能缺少代码签名的增强密钥用法(EKU):

    1. 运行certmgr.msc打开证书管理器
    2. 找到目标证书,右键→属性→详细信息→增强密钥用法
    3. 必须存在「代码签名」(OID为1.3.6.1.5.5.7.3.3),无此权限需更换符合要求的证书
  • 强制使用SHA256哈希算法签名
    旧SHA1算法可能与MSIX格式不兼容,手动签名时添加指定参数:

    signtool sign /fd SHA256 /f "你的证书文件.pfx" /p "证书密码" "目标MSIX包路径.msix"
    

    若用Visual Studio打包,在打包设置的签名选项中,将哈希算法改为SHA256

  • 检查证书私钥的访问权限
    本地证书私钥可能未赋予当前用户足够权限:

    1. 在证书管理器中找到目标证书,右键→所有任务→管理私钥
    2. 添加当前登录用户或Visual Studio运行账户,赋予「读取」权限
  • 修复Visual Studio的SignTool工具
    工具损坏或版本不兼容也会引发该错误:

    1. 打开Visual Studio安装器,点击「修改」
    2. 在「单个组件」中找到对应版本的Windows SDK,确保勾选「Windows SDK 签名工具」,执行修复操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 09:35:05