gpt4 book ai didi

c# - MSBuild 或 Bamboo 错误签名 clickonce 应用程序

转载 作者:太空狗 更新时间:2023-10-30 00:32:10 28 4
gpt4 key购买 nike

我有一个 ClickOnce 应用程序,我使用从 Windows 存储的证书对 list (而不是程序集)进行签名。在我本地机器上的 visual studio 中,一切都构建/发布得很好。我有另一台用于 Bamboo 集成测试的计算机,但它无法正常工作。它在发布任务期间出现此错误:

error MSB4044: The "SignFile" task was not given a value for the required parameter "CertificateThumbprint".

我已经做了研究,我看到的所有帖子都说证书需要安装在它正在构建的机器上。我已经这样做了。事实上,我在同一台机器上运行了 visual studio build/publish 并且它工作正常,所以显然安装了证书。

另一个问题是我尝试使用证书文件引用而不是商店,这导致了其他问题。它使得在 msbuild 期间出现错误,指出即使我关闭了程序集签名,也无法导入用于签署程序集的证书:

error MSB3326: Cannot import the following key file: DummyKey.snk. The key file may be password protected. To correct this, try to import the certificate again or import the certificate manually into the current user's personal certificate store.

此文件没有密码,而且已禁用,所以我不知道出了什么问题。任何帮助都会很棒

最佳答案

代码签名证书安装到个人商店中。在构建机器上——您是否为构建服务帐户安装?请注意,为程序集签名的强名称与为 list 签名的 Authenticode 无关。

我刚刚花了一些时间在自己签名的 ClickOnce list 上,终于让它开始工作了。以下是我的发现的详细信息,以防它们对某人有所帮助。

  1. 生成 PFX 文件时 – 您需要指定密码。

  2. 当 PFX 受密码保护时 – MSBuild 将无法自动安装证书:

    2618: Cannot import the following key file

  3. 即使您没有自动安装,CSPROJ 文件仍然需要有<ManifestKeyFile>指定(不只是 <ManifestCertificateThumbprint> ) – 否则 MSBuild 不会调用SignFile 任务正确:

    4677: The "SignFile" task was not given a value for the required parameter "CertificateThumbprint"

  4. 您可以通过调用 Microsoft 安装证书并使用证书签名SDKs\Windows\v7.0A\bin\signtool.exe 在一个命令中——然后你的CSPROJ 有明文密码。

  5. Project > Properties > Signing > Select from File 似乎是最佳路线。但是这些步骤必须手动执行每个帐户,以便您可以输入步骤 1 中的密码并获取将证书存入个人商店。

  6. 验证魔法的最简单方法:下载 ClickOnce drop,右键单击 setup.exe > 属性 > 数字签名 > 您的证书

关于c# - MSBuild 或 Bamboo 错误签名 clickonce 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19643396/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com