在使用TFS在线服务构建时,是否有任何方法可以对Clickonce应用程序进行签名



我已经在我的一键式应用程序中启用了签名。

但是生成服务器(TFS在线服务)没有证书。有没有任何方法可以将证书包含在存储库中并让构建服务器对其进行签名,或者我必须禁用签名并在之后手动进行签名?

我没有从商店里挑选证书,而是签入了一个文件,然后从文件中挑选。

构建服务器然后给我:

C: \Windows\Microsoft.NET\Framework64\v4.0.30119\Microsoft.Common.targets(2482):无法导入以下密钥文件:。密钥文件可能受密码保护。若要更正此问题,请尝试再次导入证书或手动将证书导入当前用户的个人证书存储。

(是不是我应该在没有密码的情况下签入一个?其他人就是这么做的?没有密码的私钥不危险吗?)

我在存储库中创建了以下powershell脚本:

 [CmdletBinding()]
 param(
     [Parameter(Mandatory=$True)]
     [string]$signCertPassword
    )
$SecurePassword = $signCertPassword | ConvertTo-SecureString -AsPlainText -Force
Write-Output "Importing pfx"
Import-PfxCertificate -FilePath "YourPfxFile.pfx" -Password $SecurePassword Cert:CurrentUserMy

并将密码作为变量(锁定的)传递

我为使用Mage.exe和Signtool.exe创建了CodeActivites,并将签名构建到我的构建模板中。

从/t:publish所有文件都有.deploy扩展名,我必须创建一个XML任务来更新清单XML以支持这一点。

最新更新