Подтвердить что ты не робот

Подписание сборок с файлами PFX в MSBuild, Team Build и TFS

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

sn -i companyname.pfx VS_KEY_C00C673BBB353901

Ответ 3

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

Ответ 4

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

Ответ 5

Я столкнулся с аналогичной проблемой

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

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

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

ИЛИ

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

ИЛИ

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

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

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