Msbuild VSTS生成因MSB3325而失败,无法导入PFX密钥文件

Msbuild VSTS生成因MSB3325而失败,无法导入PFX密钥文件,msbuild,azure-devops,azure-pipelines,azure-pipelines-build-task,Msbuild,Azure Devops,Azure Pipelines,Azure Pipelines Build Task,我创建了一个生成定义,用于在visualstudio.com上联机生成桌面应用程序,该应用程序在任务生成解决方案(Visual Studio生成)中失败,并出现以下错误: [错误]C:\Program Files(x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(3156,5): 错误MSB3325:无法导入以下密钥文件: Sixmod5Cer

我创建了一个生成定义,用于在visualstudio.com上联机生成桌面应用程序,该应用程序在任务生成解决方案(Visual Studio生成)中失败,并出现以下错误:

[错误]C:\Program Files(x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(3156,5): 错误MSB3325:无法导入以下密钥文件: Sixmod5Certificate.pfx。密钥文件可能受密码保护。到 请更正此问题,再次尝试导入证书或手动安装 使用以下密钥将证书发送到强名称CSP 容器名称:VS_KEY_3B2BCC84AE4E26F1

我遵循了在

那么按照, 在生成任务之前,我添加了一个powershell脚本任务,如下所示

[CmdletBinding()]
param(  
    [Parameter(Mandatory)][string] $pfxpath,
    [Parameter(Mandatory)][string] $password
)

Add-Type -AssemblyName System.Security
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$cert.Import($pfxpath, $password, [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]"PersistKeySet")
$store = new-object system.security.cryptography.X509Certificates.X509Store -argumentlist "MY", CurrentUser
$store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]"ReadWrite")
$store.Add($cert)
$store.Close()
但是还没有运气

有许多不同的帖子类似于此指定从管理员用户生成的解决方案,或手动安装pfx证书,但由于它们与个人计算机相关,并且我正在尝试在visualstudio.com上配置持续集成,因此它们对我来说似乎没有用

请注意,我能够在本地计算机上成功构建

如果您希望在结束时重新生成此问题,请执行以下步骤

步骤1:创建新的VSTO加载项项目(任何Excel/Word/Powerpoint)

步骤2:将其连接到VST

步骤3:在应用程序属性的“签名”选项卡中,不要使用临时证书,而是创建一个新的受密码保护的证书(在我的情况下是PFX-个人信息交换),并使用该证书对ClickOnce清单进行签名

第四步:尝试在本地机器上构建,它将成功

步骤5:将其推到VST上并尝试在VST上构建,您将得到与上面相同的错误。

我在“项目属性->签名”页面中取消选中了“为程序集签名”复选框,所有操作都非常有效。已通过VST成功签署生成。不知何故,我错过了许多与此问题相关的线程中提供的解决方案。

我在“项目属性->签名”页面中取消选中了“为程序集签名”复选框,一切都很顺利。已通过VST成功签署生成。不知何故,我错过了许多与问题相关的线程中提供的解决方案


这对我有用。谢谢。

如果使用starain提到的方法(),构建细节构建日志是什么?您使用的代理计算机是托管的还是私有的?我使用的是托管的计算机,我为Starain的脚本创建了Powershell脚本,并在生成任务之前添加了一个要执行的任务,但出现了相同的错误,是否与帐户权限或此类配置(如果有)有关?cz我是VSTS新手。脚本可以在托管代理上执行。您可以显示详细的生成日志和powershell脚本吗?这是调试日志的链接,我已经更新了powershell脚本的问题。PFX文件需要安装到强名称CSP,恐怕您需要安装一个安装了该PFX文件(sn-I)的专用生成代理。