Подписание сборок с помощью файлов PFX в MSBuild, Team Build и TFS - PullRequest
20 голосов
/ 26 октября 2010

Я получаю эту ошибку при попытке построить проект с использованием Team Build ( MSBuild ) на TFS 2010:


C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (1970):
Невозможно импортировать следующий файл ключа: CCC.pfx.
Файл ключа может быть защищен паролем.

Чтобы исправить это, попробуйте снова импортировать сертификат или вручную установить сертификат в CSP со строгим именем со следующим именем контейнера ключа: VS_KEY_C00C673BBB353901

C: \ Windows \ Microsoft.NET \ Framework\ v4.0.30319 \ Microsoft.Common.targets (1970):
Импорт файла ключа "CCC.pfx" был отменен.


В Visual Studio 2010 все в порядке.сборка подписана файлом PFX .Обычно в Visual Studio у нас запрашивают пароль при первом создании, но больше никогда ...

Я попытался запустить:

sn -i companyname.pfx VS_KEY_3E185446540E7F7A 

, как и другие ответы, как предложено вВопрос переполнения стека Невозможно импортировать файл ключа 'blah.pfx' - ошибка 'Файл ключа может быть защищен паролем' .Я попытался импортировать в хранилище личных сертификатов, как предложено в вопросе переполнения стека Использование MSBuild для подписи ClickOnce или сборки приводит к ошибке MSB3321 .Но все безрезультатно, все та же ошибка.

Как мне это сделать?Нужно ли каким-то образом добавлять сертификат в учетную запись Windows, под которой работает служба сборки, или что-то подобное?

В качестве альтернативы, как сделать сборку, выполненную в Team Build, без использования подписи?Я просто хочу проверить его компиляцию и запустить модульные тесты.Мне не нужна подпись для этого.

Ответы [ 6 ]

9 голосов
/ 27 октября 2010

Вам нужно адаптировать этот ответ к вашему конкретному.Что-то вроде:

sn -i companyname.pfx VS_KEY_C00C673BBB353901
8 голосов
/ 27 октября 2010

То, что я сделал, не так уж и элегантно, но работает: войдите в систему как пользователь, который запускает msbuild на компьютере сборки, вручную вызовите msbuild, а затем введите пароль при появлении запроса. Теперь он будет сохранен в хранилище сертификатов этого пользователя, и теперь сборки могут выполняться без присмотра.

5 голосов
/ 28 октября 2010

Что окончательно исправило это для меня, так это создание учетной записи, под которой служба сборки TFS запускает администратора на локальном компьютере.

Не знаю, нужно ли это делать другим вещам, которые я пробовал ранее.быть сделано, чтобы заставить его работать.Но до того, как он стал администратором, он не работал, после того как он стал администратором, он работал.

1 голос
/ 24 марта 2012

Я получил ту же ошибку, и после прочтения вашего комментария "администратора" - я просто запустил командную строку VS в качестве администратора, и теперь она работает нормально.

0 голосов
/ 08 мая 2018

У меня были следующие настройки:

<PropertyGroup>
  <SignAssembly>false</SignAssembly>
  <AssemblyOriginatorKeyFile>MyKey.pfx</AssemblyOriginatorKeyFile>
</PropertyGroup>

Подпись сборки отключена, но AssemblyOriginatorKeyFile вызвала ошибку во время знака манифеста.Удалено AssemblyOriginatorKeyFile, чтобы исправить это.

0 голосов
/ 31 июля 2015

Я столкнулся с подобной проблемой

Сценарий 1: При создании проекта в локальной системе

В моем случае я получал ошибку подписания манифеста, как только я загружал проектиз TFS и создайте его.

Чтобы избежать этой проблемы, я щелкнул правой кнопкой мыши по project ==> Свойства ==> Подписание, а затем снял флажок «Подписать манифесты ClickOnce»

ИЛИ

Вы можете нажать кнопку Выбрать из магазина и выбрать свой логин из открытого диалогового окна.

ИЛИ

Вы можете установить файл PFXвручную и позже нажмите кнопку «Дополнительные параметры», чтобы установить эти сертификаты.

Сценарий 2: - Ошибка манифеста во время сборки

Здесь, чтобы устранить эту ошибку, я сначала нажал Выберите из хранилища кнопку и в диалоговом окне выберите мой идентификатор входа. Затем я сначала зафиксировал этот проект в TFS, а затем запустил сборку.

...