Ошибка «Файл имеет вычисленный хэш, отличный от указанного в манифесте» при подписании 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> задача?Есть ли способ повторно сгенерировать манифест (и только манифест) после завершения сборки, чтобы хэш-коды снова соответствовали?

Или, если вы можете придумать другое решение проблемы, яБуду признателен за ваши идеи.

Ответы на вопрос(3)

Ваш ответ на вопрос