有关于点击一次签名的问题。
我有一台装有 Jenkins 的服务器,它可以使用 ClickOnce 作为部署选项来构建 WPF 应用程序。我使用了 MSBuild 和 mage.exe 的一组命令来生成一个应用程序文件,其中包含由提供的 *.pfx 文件签名的部署和应用程序清单。
现在决定不提供pfx文件。相反,所有密钥都移至 Azure Key Vault。
我的问题是 - 使 ClickOnce 应用程序的清单签名与 Azure Key Vault 配合使用的正确流程是什么?我只是不明白如何在没有路径作为 -certfile 参数提供的情况下正确执行 mage -update 。
提前致谢。
我在这里使用了代码:
https://github.com/davici-code/AzureSignToolClickOnce
使用 Azure Key Vault 中存储的证书成功签署 Azure DevOps 中的 ClickOnce 应用程序。
它对所有必需的可执行文件和清单文件进行签名。内部 AzureSignTool 用于对可执行文件和法师代码进行签名 带有 Authenticode 的清单。
https://www.davici.nl/blog/clickonce-signing-from-azure-devops-via-azure-key-vault
对于 Jenkins 来说它也可以工作。
只是为了提供 2024/2025 年情况的更新,届时 IT 不太可能在证书存储中的构建服务器上为您提供 EV 协同设计证书。
给予:
为了签署包含此信息的已发布 clickonce 应用程序:
sign code azure-key-vault "{YOUR_PUBLISH_FOLDER}\{YOUR_APP_NAME}.application" --azure-key-vault-url "{YOUR_KEY_VAULT_URL}" --azure-key-vault-certificate "{YOUR_CERTIFICATE_NAME}" --application-name "{YOUR_APP_NAME}" --publisher-name "{YOUR_PUBLISHER_NAME}" --timestamp-url "http://timestamp.digicert.com/"
这对我来说出奇地好,因为它弄清楚了自动签名的内容,并且现在不需要在构建 dll 上重命名/签名。遗憾的是,由于文档中没有示例,所以花了相当长的时间才弄清楚。另外,我不知道如何在显式指定所有参数(没有环境变量)时使其工作,因为它吹嘘
The client secret options are obsolete and should no longer be specified.