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