"El archivo tiene un hash computado diferente al especificado en el manifiesto" error al firmar el EXE

Mi instalación de ClickOnce falla con un error:

El archivo, WindowsFormsProject.exe, tiene un hash computado diferente al especificado en el manifiesto.

Utilizo MSBuild para generar el paquete de implementación de ClickOnce. La línea relevante del script de compilación:

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

WindowsFormsProject.csproj tiene un paso posterior a la compilación que firma el archivo ejecutable, de la siguiente manera:

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

El problema es que, cuando veo el registro de compilación, veo que el manifiesto se genera ANTES de que se ejecute el evento posterior a la compilación. Así que no es sorprendente que los códigos hash no coincidan. Las líneas relevantes del registro de compilación:

_CopyManifestFiles:

WindowsFormsProject -> ... \ WindowsFormsProject.application

...

PostBuildEvent:

Firmado con éxito: ... \ WindowsFormsProject.exe

Entonces, las preguntas son:

¿Hay alguna forma de firmar el ensamblaje ANTES de que el manifiesto se genere durante la tarea <MSBuild>?¿Hay una manera de volver a generar el manifiesto (y solo el manifiesto) después de que se complete la construcción para que los códigos hash coincidan de nuevo?

O, si puede pensar en una solución diferente al problema, apreciaría sus ideas.

Respuestas a la pregunta(3)

Su respuesta a la pregunta