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:

1. Is there a way to sign the assembly BEFORE the manifest is generated during the <MSBuild> task?
2. 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.