Visual Studio 证书错误“清单设计器无法导入证书”:是啥原因?
Posted
技术标签:
【中文标题】Visual Studio 证书错误“清单设计器无法导入证书”:是啥原因?【英文标题】:Visual Studio certificate error "the manifest designer could not import the certificate": What is the reason?Visual Studio 证书错误“清单设计器无法导入证书”:是什么原因? 【发布时间】:2022-01-03 22:04:25 【问题描述】:我目前正在开发一个 WinUI 3 应用程序,但我相信应用程序类型的详细信息对于我的问题并不重要。
应用程序附带一个“包项目”,用于使用 MSIX 发布应用程序:
在包项目的“Package.appxmanifest”文件的编辑器中,有一个“Packaging”选项卡,其中有一个“Choose certificate”按钮,用于选择“.pfx”证书文件。
我是如何获得“.pfx”文件的: 当 Windows 证书存储的应用程序打开时,我的 IT 部门登录了我的机器。在那里,我们在“自己的证书”下添加了一个新的“代码签名”证书,但它不是由我颁发的,而是由 IT 部门颁发的。他们告诉我,当我发布用它签名的应用程序时,客户端机器也应该信任这个证书,因为它是由他们颁发的,所以它有一个有效的信任链。后来我根据我现在尝试使用的证书导出了一个 pfx 文件。
现在,在 Visual Studio 中的“打包”选项卡上选择此 .pfx 文件后,我收到以下错误消息:
很遗憾,“清单设计者无法导入证书”错误消息没有提供问题的确切原因。
我很确定我的证书有一个有效的日期并且也是为“代码签名”而制作的。
我已经发现有其他用户想知道如果出现此消息如何修复证书。但似乎没有人知道如何得知确切的问题。 当我在 Visual Studio 中选择证书并出现此错误时,有什么方法可以使用 Visual Studio 或 Powershell 或其他工具告诉我证书的确切问题是什么?我想要比“导出的 .pfx 证书有问题”更详细的信息,我可以提供给我的 IT 部门。
我知道我可以在打包项目的项目文件中指定此设置,以阻止错误出现:
<EnableSigningChecks>false</EnableSigningChecks>
但我也很想知道确切的问题是什么。谢谢。
其他信息: 为了检查 pfx 证书文件,我还执行了“certutil”命令(带有 -v 选项),如下所示:https://superuser.com/a/580698/543294 在大文本转储文件中,我找到了一个颁发者,我也在受信任的根证书列表中找到证书管理应用程序的权限。
【问题讨论】:
您是否编辑了Package.appxmanifest
中 <Identity>
元素的 Publisher 属性以匹配证书的 Subject 属性?
在“打包”选项卡上,“出版商”标签旁边有一个文本框。文本框的内容是“E = MYEMAIL”,这个文本框是灰色的/禁用的,所以我猜它不是要更改的,而是根据所选证书填充的。 Package.appxmanifest 文件中 您是否编辑了 Package.appxmanifest 中元素的 Publisher 属性以匹配证书的 Subject 属性?
这不应产生上述错误。在最坏的情况下,它可能让您构建包然后由于这种不匹配而无法安装它,或者它可能无法构建包。
我怀疑 IT 为您提供了他们生成的代码签名证书(而不是从经过认证的供应商处购买)。如果您计划仅在公司内部部署您的应用程序,这非常好,因为他们可以将该证书部署到公司的所有其他机器上,因此这些机器信任它。
但是,如果证书确实是由 IT 生成的,并且它们尚未部署到您的计算机上,VS 可能会看到这不是受信任的证书并可能会出现此错误。
您可以通过打开 certmgr 控制台并在 Trusted Root Certification Authorities 配置单元中搜索证书来检查证书是否受信任。
如果不存在,请双击 PFX 文件和 follow the wizard(来自步骤 #4)进行安装。
【讨论】:
我想我没有正确解释我是如何获得证书的,抱歉。发生的事情是他们在 Windows 证书存储的应用程序打开时登录了我的机器。在那里,我们在“自己的证书”下添加了一个新的“代码签名”证书,但它不是由我颁发的,而是由 IT 部门颁发的。后来我根据我现在尝试使用的证书导出了一个 pfx 文件。我现在将更改问题描述。感谢您的宝贵时间。 我执行了“certutil”命令(带有 -v 选项),如下所示:superuser.com/a/580698/543294 在大文本转储文件中,我找到了一个颁发者,我也在受信任的根证书列表中找到当局。你指的是那个?以上是关于Visual Studio 证书错误“清单设计器无法导入证书”:是啥原因?的主要内容,如果未能解决你的问题,请参考以下文章
如何为“Visual Studio emulator for android”的模拟器安装证书?