Сбой сборки VSTS с MSB3325, Невозможно импортировать файл ключа PFX - PullRequest
0 голосов
/ 27 апреля 2018

Я создал определение сборки для создания настольного приложения онлайн на 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, вы получите ту же ошибку, что и выше.

1 Ответ

0 голосов
/ 30 мая 2019

Я снял флажок «Подписать сборку» на странице «Свойства проекта -> Подписание», и все заработало как чудо. Сборка была успешно подписана через VSTS. Каким-то образом я пропустил это решение, предоставленное во многих SO-потоках, связанных с проблемой.

...