相关疑难解决方法(0)

在签署EXE时,"文件具有与清单中指定的计算哈希值不同"错误

我的ClickOnce安装失败并显示错误:

File,WindowsFormsProject.exe具有与manifest中指定的不同的计算哈希值.

我使用MSBuild生成ClickOnce部署包.构建脚本中的相关行:

<MSBuild Targets="Publish"
         Projects="WindowsFormsProject.csproj"
         ContinueOnError="false" />
Run Code Online (Sandbox Code Playgroud)

WindowsFormsProject.csproj具有签署可执行文件的Post-Build步骤,如下所示:

signtool sign /a $(ProjectDir)\obj\$(PlatformName)\$(ConfigurationName)\$(TargetFileName)
Run Code Online (Sandbox Code Playgroud)

麻烦的是,当我查看构建日志时,我发现清单是在Post-Build事件执行之前生成的.因此哈希码不匹配就不足为奇了.构建日志中的相关行:

_CopyManifestFiles:

WindowsFormsProject - > ...\WindowsFormsProject.application

...

PostBuildEvent:

成功签名:...\WindowsFormsProject.exe

所以,问题是:

  1. 有没有办法在<MSBuild>任务期间生成清单之前签署程序集?
  2. 有没有办法在构建完成后重新生成清单(和仅清单),以便哈希代码再次匹配?

或者,如果你能想到问题的不同解决方案,我会很感激你的想法.

c# msbuild clickonce msbuild-task

6
推荐指数
1
解决办法
7339
查看次数

标签 统计

c# ×1

clickonce ×1

msbuild ×1

msbuild-task ×1