My ClickOnce installation fails with an error:
File, WindowsFormsProject.exe, has a different computed hash than specified in manifest.
I use MSBuild to generate ClickOnce deployment package. The relevant line from the build script:
<MSBuild Targets="Publish"
Projects="WindowsFormsProject.csproj"
ContinueOnError="false" />
The WindowsFormsProject.csproj has a Post-Build step that signs the executable, as follows:
signtool sign /a $(ProjectDir)obj$(PlatformName)$(ConfigurationName)$(TargetFileName)
The trouble is, when I look at the build log I see that the manifest is generated BEFORE the Post-Build event executes. So it's not surprising that hash codes don't match. The relevant lines from the build log:
_CopyManifestFiles:
WindowsFormsProject -> ...WindowsFormsProject.application
...
PostBuildEvent:
Successfully signed: ...WindowsFormsProject.exe
So, the questions are:
- 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?
Or, if you can think of a different solution to the problem, I'd appreciate your ideas.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…