【发布时间】:2022-03-30 01:49:04
【问题描述】:
我正在为 WPF 应用程序将 TFS 构建/发布迁移到 Azure DevOps Services (ADS)。构建工作正常,但我在发布时遇到问题。这是我参与过的第一个 ADS 版本。
最初的 TFS 构建/发布是由一位后来离职的同事完成的。他使用 PowerShell 脚本对 TFS 版本中的 ClickOnce 清单进行签名。
我在 Stack Overflow 上搜索时遇到了一个错误,Signtool error: No certificates were found that met all given criteria with a Windows Store App?
查看发布的答案,答案之一是清除项目属性的复选框“签署 ClickOnce 清单”。我查看并发现未选中该复选框。我不相信这是错误的原因。无论如何,我的同事编写的 PowerShell 脚本签署了清单。我们需要对所有清单进行签名。
我的同事从签名机构获得了证书。它的有效期到 2022 年的某个时候,所以它还没有过期。
我将证书从它所在的服务器上取下来,并将其放入该项目的管道 |图书馆 | ADS 中的安全文件位置。我正在使用代码签名市场扩展来签署清单。这是 ADS 发布管道中的任务:
steps:
- task: stefankert.codesigning.codesigning-task.codesigning@2
displayName: 'Code Signing '
inputs:
secureFileId: 'DER Encoded Binary.cer'
signCertPassword: '$(signingCert.securePassword)'
files: '**/*.manifest'
timeServer: 'http://timestamp.comodoca.com'
description: 'ACDC ClickOnce'
我在管道库中创建了一个变量组。 signingCert.securePassword 是具有证书密码的变量之一的名称。
错误提示我管道在库中找不到文件“DER Encoded Binary.cer” |安全文件。我做错了什么?
附录:
仔细查看任务日志,我发现它正在查找清单文件。这是使用 signtool.exe 的行:
[命令]D:\a_tasks\codesigning_0e0f3bf7-d96c-45d6-aa76-f9afb71fb77e\2.2.0\signtool.exe 签名 /fd SHA256 /t http://timestamp.comodoca.com /f "D:\a_temp\DER 编码二进制.cer " /p *** /d "ACDC ClickOnce" D:\a\r1\a_ACDC\drop\ACDC\bin\Release\ACDC.exe.manifest
【问题讨论】:
-
如果您使用经典模式添加该任务并检查您是否可以选择
.cer文件,结果如何? -
你在哪里运行它?在 Microsoft 代理中还是在自托管代理中?
-
在微软的代理中
标签: azure azure-devops