"Arquivo tem um hash computado diferente do especificado no manifesto" erro ao assinar o EXE

Minha instalação do ClickOnce falha com um erro:

Arquivo, WindowsFormsProject.exe, tem um hash calculado diferente do especificado no manifesto.

Eu uso o MSBuild para gerar o pacote de implantação do ClickOnce. A linha relevante do script de construção:

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

O WindowsFormsProject.csproj tem uma etapa de pós-compilação que assina o executável, da seguinte maneira:

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

O problema é que, quando olho para o log de compilação, vejo que o manifesto é gerado ANTES de o evento Post-Build ser executado. Portanto, não é surpreendente que os códigos hash não correspondam. As linhas relevantes do log de construção:

_CopyManifestFiles:

WindowsFormsProject -> ... \ WindowsFormsProject.application

...

PostBuildEvent:

Assinado com sucesso: ... \ WindowsFormsProject.exe

Então, as perguntas são:

Existe uma maneira de assinar o assembly antes que o manifesto seja gerado durante a tarefa <MSBuild>?Existe uma maneira de gerar novamente o manifesto (e somente manifesto) após a compilação ser concluída para que os códigos de hash correspondam novamente?

Ou, se você puder pensar em uma solução diferente para o problema, agradeço suas ideias.

questionAnswers(3)

yourAnswerToTheQuestion