Я создал определение сборки для создания настольного приложения онлайн на visualstudio.com, которое завершается ошибкой при решении задачи Build Solution (сборка 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
Я следовал решению, указанному в, https://developercommunity.visualstudio.com/content/problem/156086/vsts-build-msb3325-cannot-import-the-following-key.html
затем, как указано в, 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 (Any Excel / Word / Powerpoint).
ШАГ 2: Подключите это к VSTS.
ШАГ 3: На вкладке подписи свойств приложения вместо использования временного сертификата создайте новый защищенный паролем сертификат (в моем случае PFX - Обмен личной информацией) и используйте его для подписи манифеста ClickOnce
ШАГ 4: Попробуйте собрать на локальной машине, все получится.
ШАГ 5: Переместите его и попробуйте собрать VSTS, вы получите ту же ошибку, что и выше.