我创建了一个构建定义,用于在visualstudio.com上在线构建桌面应用程序,该任务在任务构建解决方案(Visual Studio构建)中失败,并出现以下错误,
指定的解决方案[错误] C:\ Program Files(x86)\ Microsoft Visual 工作室\ 2017 \企业\的MSBuild \ 15.0 \斌\ Microsoft.Common.CurrentVersion.targets(3156,5): 错误MSB3325:无法导入以下密钥文件: Sixmod5Certificate.pfx。密钥文件可能受密码保护。至 更正此问题,尝试再次导入证书或手动安装 使用以下密钥将证书发送到强名称CSP 容器名称:VS_KEY_3B2BCC84AE4E26F1
然后按照https://stackoverflow.com/a/48698229/3531672的规定 我在构建任务之前添加了一个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()
但没有运气,
有不同的SO帖子类似于指定从Admin用户构建的解决方案,或手动安装pfx证书,但由于它们与个人计算机相关,我试图在visualstudio.com上配置持续集成,因此它们不会对我来说似乎很有用。
请注意我能够在我的本地计算机上成功构建。
如果您希望在最后重新生成此问题,请按照以下步骤操作
步骤1:创建一个新的VSTO Addin项目(任何Excel / Word / Powerpoint)。
第2步:将其附加到VSTS。
步骤3:在签名应用程序属性选项卡中,而不是使用临时证书,创建一个新的密码保护证书(PFX - 我的个人信息交换)并使用它来签署ClickOnce Manifest
第4步:尝试在本地机器上构建,它会成功。
第5步:将其推过并尝试在VSTS上构建,您将得到与上述相同的错误。
答案 0 :(得分:0)
我从“项目属性->签名”页面中取消选中了“对程序集签名”复选框,并且所有操作都像一个超级按钮。该构建已通过VSTS成功签名。不知何故,我错过了许多与该问题相关的SO线程中提供的解决方案。
答案 1 :(得分:0)
我从“项目属性->签名”页面中取消选中了“对程序集签名”复选框,并且一切正常。该版本已通过VSTS成功签名。不知何故,我错过了许多与该问题相关的SO线程中提供的解决方案。
这对我有用。谢谢。