Mi instalación de ClickOnce con un error:"Archivo tiene un hash calculado diferente a la especificada en el manifiesto" error al firmar el EXE no
File, WindowsFormsProject.exe, has a different computed hash than specified in manifest.
utilizo MSBuild para generar paquete de implementación de ClickOnce. La línea correspondiente de la escritura de la estructura:
<MSBuild Targets="Publish"
Projects="WindowsFormsProject.csproj"
ContinueOnError="false" />
la WindowsFormsProject.csproj tiene un paso posterior a la generación que firma el ejecutable, de la siguiente manera:
signtool sign /a $(ProjectDir)\obj\$(PlatformName)\$(ConfigurationName)\$(TargetFileName)
El problema es que cuando miro a la acumulación log: veo que el manifiesto se genera ANTES de que se ejecute el evento Post-Build. Entonces, no es sorprendente que los códigos hash no coincidan. Las líneas relevantes del registro de generación:
_CopyManifestFiles:
WindowsFormsProject -> ...\WindowsFormsProject.application
...
PostBuildEvent:
Successfully signed: ...\WindowsFormsProject.exe
Por lo tanto, las preguntas son:
- ¿Hay alguna forma para firmar el ensamblado antes de generar el manifiesto durante la MSBuild > tarea <?
- ¿Hay alguna forma de volver a generar el manifiesto (y solo el manifiesto) una vez completada la compilación para que los códigos hash coincidan de nuevo?
O, si puede pensar en una solución diferente al problema, agradecería sus ideas.
En caso de que alguien cometa el mismo error que yo ... Interpreté esta respuesta 'Postbuild' con' Target'. Esto es incorrecto. 'Target' debe estar en el nivel del proyecto. –