我的 ClickOnce 安装失败并出现错误:
文件 WindowsFormsProject.exe 的计算哈希值与清单中指定的不同。
我使用 MSBuild 生成 ClickOnce 部署包。构建脚本中的相关行:
<MSBuild Targets="Publish"
Projects="WindowsFormsProject.csproj"
ContinueOnError="false" />
WindowsFormsProject.csproj 有一个对可执行文件进行签名的 Post-Build 步骤,如下所示:
signtool sign /a $(ProjectDir)\obj\$(PlatformName)\$(ConfigurationName)\$(TargetFileName)
问题是,当我查看构建日志时,我看到清单是在 Post-Build 事件执行之前生成的。所以哈希码不匹配也就不足为奇了。构建日志中的相关行:
_CopyManifest 文件:
WindowsFormsProject -> ...\WindowsFormsProject.application
...
PostBuildEvent:
成功签名:...\WindowsFormsProject.exe
所以,问题是:
- 有没有办法在 <MSBuild> 任务期间生成清单之前对程序集进行签名?
- 有没有办法在构建完成后重新生成清单(仅清单),以便哈希码再次匹配?
或者,如果您能想出一个不同的解决方案来解决这个问题,我会很感激您的想法。