2017-01-11 18 views
0

Я использую события PostBuild в своем решении для развертывания как в моем проекте DLL, так и в моем проекте WiX (используется для создания MSI) успешно в течение последних 4 лет. Недавно мы получили новый сертификат и пароль, так как срок действия предыдущего сертификата истек.Новый сертификат и пароль SignTool заставляют события postbuild MSBuild/WiX сбой

Я больше не могу строить свое решение, так как событие PostBuild для DLL и событий WiX PostBuild терпят неудачу.

Я прокомментировал команды SignTool как в проекте DLL, так и в проекте WiX, и оба проекта построены правильно.

Когда следующая команда SignTool включается в случае PostBuild, я получаю сообщение об ошибке, что PostBuild вышел с -1

EXEC : SignTool error : The specified PFX password is not correct. 

DLL, PostBuild событие вызывает SignTool следующим образом:

"$(SolutionDir)\Certificates\signtool.exe" sign /f "$(SolutionDir)\Certificates\MyCertificate.pfx" /p Pass%word& -t http://timestamp.verisign.com/scripts/timstamp.dll /v "$(TargetDir)MyDll.dll" 

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

SignTool Error: Missing filename. 
'e' is not recognized as an internal or external command, operable program or batch file. 

При попытке запустить SignTool с помощью командной строки, она работает, если пароль заключен в двойные кавычки.

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

Я прочитал, что Visual Studio (и msbuild?) Просматривает выходные данные для определенных слов и определяет, что процесс завершился неудачно. Я заметил, что при запуске процесса SignTool я получаю следующее в конце процесса и задаюсь вопросом, связано ли это со словом ошибок.

Number of files successfully Signed: 1 
Number of warnings: 0 
Number of errors: 0 
+1

Попробуйте использовать " вместо "в вашей команде EXEC. Кроме того, возможно, придется бежать„%“с„% 25“, но я не уверен в этом. Просто некоторые вещи, к проверять. –

ответ

0

Мне пришлось использовать escape-символы для специальных символов.

Брайан Сазерленд был правильным

 Смежные вопросы

  • Нет связанных вопросов^_^