【问题标题】:MSBuild SignFile task returning MSB3481: The signing certificate could not be located返回 MSB3481 的 MSBuild SignFile 任务:找不到签名证书
【发布时间】:2013-01-02 18:51:19
【问题描述】:

我最近获得了新的代码签名证书。我正在使用 MSBuild 的 SignFile 任务对应用程序清单进行签名。由于某种原因,任务正在返回:

MSB3481: The signing certificate could not be located.
Ensure that it is in the current user's personal store.

证书肯定在我的个人存储中,我可以在 certmgr.msc 中看到它。而且我相信我以同一用户身份登录,因为我能够使用同一个人商店中的不同证书签署清单。不知道为什么找不到这个新证书。

我什至可以使用带有新证书的 SHA1 的 signtool.exe 来对文件进行签名。但我真的更喜欢将我们现有的 MSBuild 与 SignFile 任务一起使用。有什么想法可以在这里出错吗?

我也尝试过导入带有和不带有完整证书路径的证书。

【问题讨论】:

    标签: msbuild code-signing signtool


    【解决方案1】:

    我不确定这是否会有所帮助,但我记得如果您从管理单元字段复制指纹,则第一个位置会有一个“不可见”符号。 因此,无法在您的商店中找到该不可打印的指纹。尝试从证书指纹(包括引号)的开头删除 3-5 个符号并手动键入它们。

    还要考虑指纹应该全部大写(尽管该属性以小写显示)。

    【讨论】:

    • 就是这样!我在十六进制编辑器中打开了我的 MSBUILD 文件,指纹以“‎”开头,这些字符在我在记事本中编辑文件时是不可见的。就像你说的,当我从证书存储中复制指纹时,它们一定是被引入的。
    • 附带说明,对于希望解决此问题的其他人来说,指纹的大小写对我来说似乎并不重要。
    • :) 我偶然发现了这个问题两次,然后我记住了——你永远不应该相信复制粘贴的指纹并总是检查所有那些看不见的小懦夫;)
    • 应该保留空格吗?假设我有一个看起来像这样的指纹,应该如何在 SignFile CertificateThumbprint 属性中对其进行格式化? ‎ac 5c 9e fb ff eb c4 2d 19 fd 90 89 d1 73 1e 90 2b 29 58 65
    • 通常应该删除空格。
    猜你喜欢
    • 1970-01-01
    • 2013-09-28
    • 2018-09-28
    • 2015-11-25
    • 2017-11-27
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    相关资源
    最近更新 更多