Ошибка «Файл имеет вычисленный хэш, отличный от указанного в манифесте» при подписании EXE
Моя установка ClickOnce завершается с ошибкой:
Файл WindowsFormsProject.exe имеет другой вычисленный хеш, чем указано в манифесте.
Я использую MSBuild для создания пакета развертывания ClickOnce. Соответствующая строка из скрипта сборки:
WindowsFormsProject.csproj имеет шаг после сборки, который подписывает исполняемый файл следующим образом:
signtool sign /a $(ProjectDir)\obj\$(PlatformName)\$(ConfigurationName)\$(TargetFileName)
Проблема в том, что когда я просматриваю журнал сборки, я вижу, что манифест генерируется ДО выполнения события Post-Build. Так что'не удивительно, что хэш-коды нет совпадают. Соответствующие строки из журнала сборки:
_CopyManifestFiles:
WindowsFormsProject -> ... \ WindowsFormsProject.application
...
PostBuildEvent:
Успешно подписано: ... \ WindowsFormsProject.exe
Итак, вопросы:
Есть ли способ подписать сборку ДО того, как манифест сгенерирован во время <MSBuild> задача?Есть ли способ повторно сгенерировать манифест (и только манифест) после завершения сборки, чтобы хэш-коды снова соответствовали?Или, если вы можете придумать другое решение проблемы, яБуду признателен за ваши идеи.