Ошибка «Файл имеет вычисленный хэш, отличный от указанного в манифесте» при подписании EXE

Моя установка ClickOnce завершается с ошибкой:

File, WindowsFormsProject.exe, has a different computed hash than specified in manifest.

Я использую MSBuild для создания пакета развертывания ClickOnce. Соответствующая строка из скрипта сборки:

<MSBuild Targets="Publish"
         Projects="WindowsFormsProject.csproj"
         ContinueOnError="false" />

WindowsFormsProject.csproj имеет шаг после сборки, который подписывает исполняемый файл следующим образом:

signtool sign /a $(ProjectDir)\obj\$(PlatformName)\$(ConfigurationName)\$(TargetFileName)

Проблема в том, что когда я просматриваю журнал сборки, я вижу, что манифест генерируется ДО выполнения события Post-Build. Поэтому неудивительно, что хеш-коды не совпадают. Соответствующие строки из журнала сборки:

_CopyManifestFiles:

WindowsFormsProject -> ...\WindowsFormsProject.application

...

PostBuildEvent:

Successfully signed: ...\WindowsFormsProject.exe

Итак, вопросы:

Is there a way to sign the assembly BEFORE the manifest is generated during the <MSBuild> task? Is there a way to re-generate the manifest (and manifest only) after the build is complete so that hash codes match again?

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

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

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