Azure devops DevOps管道失败-无法导入密钥文件:[XXX]。pfx

Azure devops DevOps管道失败-无法导入密钥文件:[XXX]。pfx,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,我一直在尝试在Azure DevOps中创建构建管道。虽然我能够构建一个基本的控制台应用程序项目,但当我将pfx文件添加到项目应用程序中时,我遇到了一些问题 控制台应用程序项目已为ClickOnce启用,这需要具有*.pfx密钥文件 当我设置一个基本的构建管道时,它似乎一直在失败。我得到这个信息: 错误MSB3325:无法导入以下密钥文件:[XXXX]。pfx。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书,或使用以下密钥容器名称手动将证书安装到强名称CSP:VS_key_FE357D

我一直在尝试在Azure DevOps中创建构建管道。虽然我能够构建一个基本的控制台应用程序项目,但当我将pfx文件添加到项目应用程序中时,我遇到了一些问题

控制台应用程序项目已为ClickOnce启用,这需要具有*.pfx密钥文件

当我设置一个基本的构建管道时,它似乎一直在失败。我得到这个信息:

错误MSB3325:无法导入以下密钥文件:[XXXX]。pfx。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书,或使用以下密钥容器名称手动将证书安装到强名称CSP:VS_key_FE357D179B4A2D91

错误MSB3325:无法导入以下密钥文件:[XXXX]。pfx。密钥文件可能受密码保护。要更正此问题,请尝试再次导入证书,或使用以下密钥容器名称手动将证书安装到强名称CSP:VS_key_FE357D179B4A2D91

如何导入pfx以使构建成功? 感谢对此的任何见解/指导


谢谢。

如果要使PFX文件可用于管道,只需在主任务之前添加Powershell任务即可

#Import the PFX certificate file and password. Read the thumbprint into variable
$Thumbprint = (Import-PfxCertificate -CertStoreLocation Cert:\CurrentUser\My -FilePath Certificate.pfx -Password $pwd).Thumbprint

Write-Host $Thumbprint

#Rest of Script below or set environment variable for rest of Pipeline
Write-Host "##vso[task.setvariable variable=Thumbprint]$Thumbprint"
如果需要,可以将指纹与最后一行一起传递给管道的其余部分,或者在需要时对指纹进行硬编码


我将证书存储在Azure KeyVault中。如果你也这么做/想这么做,我在这里有一个帖子:

Hi the.herbert,关于这个问题的任何更新,你有机会实施Bevan建议的解决方案吗?您能够解决吗?如何添加这样的PowerShell任务?我应该将脚本提交到存储库吗?我只有一个Powershell或Azure Powershell任务,并使用一个内嵌脚本。这取决于您工作的地方是否可以接受内嵌脚本,或者您是否需要源代码管理中的所有内容。这两种方法都可以。谢谢!我现在明白了,我刚开始使用Azure DevOps,不确定脚本可以放在哪里。现在我看到它可以简单地内联到配置文件中。除非我遗漏了一些东西,否则这并不能解决问题。我添加了一个脚本,它成功了,但是这对管道有什么帮助呢?错误消息仍然出现。我看不出这个脚本除了得到指纹之外还有什么作用。那么它有什么帮助呢?第2行实际上安装了托管代理的证书,然后管道的其余部分可以使用该证书。对于我的用例(以及许多其他用例),一旦安装,您只需要在命令或应用程序中声明指纹。如果已安装证书,则代理现在是远程应用程序/服务的受信任端点。请随意分享您试图实现的目标,我可以看看是否有适合您的场景的不同方法或输出