ClickOnce のインストールが次のエラーで失敗します。
ファイル WindowsFormsProject.exe には、マニフェストで指定されたものとは異なる計算されたハッシュがあります。
MSBuild を使用して ClickOnce 展開パッケージを生成します。ビルド スクリプトの関連する行:
<MSBuild Targets="Publish"
Projects="WindowsFormsProject.csproj"
ContinueOnError="false" />
WindowsFormsProject.csproj には、次のように、実行可能ファイルに署名するビルド後の手順があります。
signtool sign /a $(ProjectDir)\obj\$(PlatformName)\$(ConfigurationName)\$(TargetFileName)
問題は、ビルド ログを見ると、ビルド後のイベントが実行される前にマニフェストが生成されていることがわかります。したがって、ハッシュ コードが一致しないことは驚くべきことではありません。ビルドログからの関連行:
_CopyManifestFiles:
WindowsFormsProject -> ...\WindowsFormsProject.application
...
PostBuildEvent:
署名に成功しました: ...\WindowsFormsProject.exe
したがって、質問は次のとおりです。
- <MSBuild> タスク中にマニフェストが生成される前にアセンブリに署名する方法はありますか?
- ハッシュコードが再び一致するように、ビルドが完了した後にマニフェスト (およびマニフェストのみ) を再生成する方法はありますか?
または、問題の別の解決策を考えられる場合は、アイデアをいただければ幸いです。