UWP认证:应用商店构建签名失败求助(旁加载构建正常)
解决MSIX商店构建签名“缺少Criteria/Container”错误
1. 清理冗余GUID命名证书
证书存储里的大量GUID格式CN证书大概率是VS自动生成的临时证书,会干扰硬件证书识别:
- 打开
certmgr.msc,进入当前用户 > 个人 > 证书 - 筛选所有CN为
{xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}格式的证书,全部删除 - 同步检查本地计算机 > 个人 > 证书下的同类证书,一并清理
2. 手动绑定硬件Token证书到VS
VS可能没正确关联硬件Token的正式证书,手动指定:
- 右键项目 > 属性 > 打包 > 签名
- 取消“自动选择证书”,点击“选择证书”
- 在证书选择窗口的个人选项卡中,找到硬件Token对应的正式发布证书(别选临时证书),选中后确定并保存设置
3. 修复VS的MSIX签名组件
VS 17.7.1的签名组件可能存在异常,修复流程:
- 打开Visual Studio Installer,选中你的VS实例点击“修改”
- 进入“单个组件”,搜索“MSIX”,确认MSIX打包工具和Windows应用程序打包项目已安装
- 若已安装,点击“修复”,完成后重启VS
4. 用SignTool手动签名商店包
绕开VS自动签名流程,直接用命令行工具签名:
- 先在VS中生成未签名的商店包:右键项目 > 生成 > 生成商店包,选择“不签名”
- 找到生成的MSIX包路径(一般在
bin\Release\AppPackages目录下) - 打开VS 2022开发者命令提示符,运行对应命令:
如果用证书文件:
如果用硬件Token(用证书指纹替代文件路径):signtool sign /f "你的证书文件路径" /p "证书密码" /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 "你的MSIX包完整路径"signtool sign /sha1 "你的证书指纹" /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 "你的MSIX包完整路径"
5. 重置硬件Token的证书容器
“缺少Criteria/Container”错误多和证书容器损坏有关,重置容器:
- 打开硬件Token的管理工具(比如Gemalto IDGo、SafeNet Authentication Client)
- 删除现有发布证书的容器,重新将证书导入Token
- 导入时设置清晰的容器名称,避免和旧容器冲突
内容的提问来源于stack exchange,提问作者Jon Phillips
相关产品推荐
相关产品推荐

