Я пытаюсь подписать свое приложение clickonce. У меня есть сертификат подписи кода EV, который использует SHA256. Проблема в том, что когда я подписываю свое приложение с помощью команд пост-сборки, кажется, что оно использует SHA1 вместо SHA256. Вот фрагмент окна вывода:
Running Code Analysis...
1> Code Analysis Complete -- 0 error(s), 0 warning(s)
1> The following certificate was selected:
1> Issued to: Certificate Subject Name Here
1>
1> Issued by: DigiCert EV Code Signing CA (SHA2)
1>
1> Expires: Thu Apr 14 06:00:00 2016
1>
1> SHA1 hash: HASH-HERE
1>
1>
1> Done Adding Additional Store
1> Successfully signed and timestamped: C:\Users\AnyBody\Documents\Visual Studio 2013\Projects\My Project\Project Folder\obj\x86\My Configuration\MyProgram.exe
1>
1>
1> Number of files successfully Signed: 1
1>
1> Number of warnings: 0
1>
1> Number of errors: 0
Вот команда пост-сборки, которую я использую:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\signtool.exe" sign /fd SHA256 /t "http://timestamp.digicert.com" /n "Certificate Subject Name Here" /v "$(ProjectDir)obj\x86\$(ConfigurationName)\$(TargetFileName)"
Когда я смотрю на свойства файла, я вижу, что к MyProgram.exe.deploy прикреплена цифровая подпись.
Когда я запускаю signtool / verify, ошибки не возвращаются
Когда я пытаюсь запустить приложение, я получаю сообщение об ошибке «Проверка приложения не удалась. Продолжить невозможно».
В деталях сообщения об ошибке есть такая строка:
+ File, MyProgram.exe, has a different computed hash than specified in manifest.
Когда я открываю и просматриваю манифест, хеш MyProgram.exe указывается как SHA256.
В чем может быть проблема? Что заставляет signtool отказываться от использования SHA256? Из того, что я читал, по умолчанию должен использоваться SHA256.
Я удалил / переустановил визуальную студию, windows sdk, все установленные библиотеки .net безрезультатно.
Я очень надеюсь, что у кого-то есть идеи ...