Batch file &引用;无效的SHA1哈希格式“;从msbuild或命令行调用signtool时出错

Batch file &引用;无效的SHA1哈希格式“;从msbuild或命令行调用signtool时出错,batch-file,msbuild,code-signing,signtool,Batch File,Msbuild,Code Signing,Signtool,我试图在项目生成期间使用对程序集和安装文件进行签名。接下来,我想使用/sha1选项,这样就不需要指定证书密码。然而,当我这样做时,我得到了一个“无效的SHA1哈希格式”错误。我从MSBuildExec任务、Visual Studio Developer命令提示符和批处理文件中都尝试过,但都出现了相同的错误 我正在尝试的命令是(显然是使用不同的键): 我认为我的证书安装正确,并且SHA1密钥正确,因为它可以正确使用。我只想使用它,但我还需要能够对我的安装程序文件进行签名,这些文件不是使用MSBui

我试图在项目生成期间使用对程序集和安装文件进行签名。接下来,我想使用
/sha1
选项,这样就不需要指定证书密码。然而,当我这样做时,我得到了一个“无效的SHA1哈希格式”错误。我从MSBuild
Exec
任务、Visual Studio Developer命令提示符和批处理文件中都尝试过,但都出现了相同的错误

我正在尝试的命令是(显然是使用不同的键):

我认为我的证书安装正确,并且SHA1密钥正确,因为它可以正确使用。我只想使用它,但我还需要能够对我的安装程序文件进行签名,这些文件不是使用MSBuild构建的,因此需要从批处理脚本进行签名


那么问题出在哪里?我该如何解决呢?

愚蠢的错误,我不敢相信花了这么长时间才意识到。我在指纹字符串之前有一个额外的空格字符,这是导致错误的原因

即使在解决了这个问题之后,我还是出现了另一个错误:

未找到满足所有给定条件的证书

使用
/debug
选项再次运行该命令,列出了它试图使用的所有证书,并且

哈希筛选后,剩下0个证书

我想要使用的证书的hash SHA1 hash与我指定的完全相同,唯一的例外是hash都是大写字母。因此,再次尝试使用所有大写字母的哈希值命令,并且。。。成功了


由于我没有在任何地方看到这个要求的文档,我想我应该在这里提供答案。

我也有同样的问题,并发现可能有一个隐藏的UNICODE字符导致了这个错误。只需将文本复制到一个新的记事本实例并返回,它就会工作。 或者,将光标放置在此位置:

/sha1 <cursor>abcdefg
/sha1 abcdefg

然后按BACKSPACE。如果必须按BACKSPACE键两次才能将光标移到“/sha1”指令旁边,则会出现一个不可见字符。然后只需键入空格即可完成。

这些不是用MSBuild生成的,因此需要从批处理脚本进行签名,或者让批处理脚本调用MSBuild对文件进行签名。。谢谢@stijn。我确实考虑过这样做,但我也想知道到底出了什么问题。结果证明我犯了一个愚蠢的错误。。。。这是我非常期待的。在我的情况下,我也必须删除相反方向的字符。
/sha1 <cursor>abcdefg