Msbuild 错误MSB3325:无法导入以下密钥文件

Msbuild 错误MSB3325:无法导入以下密钥文件,msbuild,azure-devops,assembly-signing,Msbuild,Azure Devops,Assembly Signing,我有一个托管在Azure DevOps中的项目,在那里生成失败,并显示错误消息: 错误MSB3325:无法导入以下密钥文件:xxxx.pfx。钥匙 文件可能受密码保护。要更正此问题,请尝试导入 重新安装证书或手动将证书安装到强 使用以下密钥容器名称命名CSP:VS_key_xxxx 这发生在项目更改为使用新生成的受密码保护的pfx签名证书对程序集进行签名之后 我尝试过其他SO帖子中给出的各种修复方法,但似乎没有任何效果 任何拥有azure devops专业知识的人都可以帮助我解决这种情况 错误M

我有一个托管在Azure DevOps中的项目,在那里生成失败,并显示错误消息:

错误MSB3325:无法导入以下密钥文件:xxxx.pfx。钥匙 文件可能受密码保护。要更正此问题,请尝试导入 重新安装证书或手动将证书安装到强 使用以下密钥容器名称命名CSP:VS_key_xxxx

这发生在项目更改为使用新生成的受密码保护的pfx签名证书对程序集进行签名之后

我尝试过其他SO帖子中给出的各种修复方法,但似乎没有任何效果

任何拥有azure devops专业知识的人都可以帮助我解决这种情况

错误MSB3325:无法导入以下密钥文件

您可以创建
PowerShell
脚本,并在生成定义中添加PowerShell脚本步骤,以便在VSBuild步骤之前导入新证书文件:

我以前使用的PowerShell脚本:

$pfxpath = 'pathtoees.pfx'
$password = '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()
而且在我这方面效果很好

您可以查看以了解更多详细信息

希望这有帮助

错误MSB3325:无法导入以下密钥文件

您可以创建
PowerShell
脚本,并在生成定义中添加PowerShell脚本步骤,以便在VSBuild步骤之前导入新证书文件:

我以前使用的PowerShell脚本:

$pfxpath = 'pathtoees.pfx'
$password = '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()
而且在我这方面效果很好

您可以查看以了解更多详细信息

希望这有帮助。

您可以使用,并将其作为powershell任务添加到管道中

- task: PowerShell@2
  env:
    SN_INSTALL_PFX: $(snInstallPfx.secureFilePath)
    MYCERTIFICATE_PFX: $(myCertificatePfx.secureFilePath)
    MYCERTIFICATE_PFX_PASSWORD: $(myCertificatePfxPassword)
  inputs:
    targetType: 'inline'
    script: '&"$($ENV:SN_INSTALL_PFX)" "$($ENV:MYCERTIFICATE_PFX)" "$($ENV:MYCERTIFICATE_PFX_PASSWORD)"'
pfx、exe和密码作为安全文件和变量存储在管道库中

有关详细信息,请参阅以下内容。

您可以使用,并将其作为powershell任务添加到管道中

- task: PowerShell@2
  env:
    SN_INSTALL_PFX: $(snInstallPfx.secureFilePath)
    MYCERTIFICATE_PFX: $(myCertificatePfx.secureFilePath)
    MYCERTIFICATE_PFX_PASSWORD: $(myCertificatePfxPassword)
  inputs:
    targetType: 'inline'
    script: '&"$($ENV:SN_INSTALL_PFX)" "$($ENV:MYCERTIFICATE_PFX)" "$($ENV:MYCERTIFICATE_PFX_PASSWORD)"'
pfx、exe和密码作为安全文件和变量存储在管道库中


有关详细信息,请参阅以下内容。

我尝试了上述脚本,但它不起作用。什么应该是-argumentlist“MY”?什么应该是-argumentlist“MY”?我用构建错误中指定的密钥容器名称(类似于VS_key_5FC03B158F74XXXX)尝试了它,但没有成功。我尝试了上面的脚本,但它不起作用。什么应该是-argumentlist“MY”?什么应该是-argumentlist“MY”?我尝试使用构建错误中指定的密钥容器名称(类似于VS_key_5FC03B158F74XXXX),但没有成功。