.net - 清单",.NET Clickonce签名的应用程序失败,"中的计算哈希值与指定的值不同 法师无法解决问题

  显示原文与译文双语对照的内容
150 2

我一直都在纠结这一天。 我看到过类似 ClickOnce部署错误的其他帖子: 不同于清单中指定的计算哈希,但该解决方案似乎不适合我。

我有一个有效的代码签名证书,并一直使用它来对我的ClickOnce应用程序进行几个月的签名。 我意识到我没有为可执行文件和dll签名,所以我尝试这样做。 现在,每次发布并运行 setup.exe, 时,它都会失败: ,xxxxxx.dll,的计算哈希值与清单中指定的哈希值不同。"

如果我不签署exe和 dll,我可以重新部署。 我确保在发布之前所有目录( 目标,对象) 中都签名了 exe/dll的所有副本。 我曾尝试使用法师/mageui,但没有成功。 是否可以配置没有签名代码的ClickOnce安装,然后发布签名代码? 似乎是逻辑上的但也许我遗漏了一些东西。

谢谢,Gregg

时间: 原作者:

107 1

你是否尝试部署一个WPF应用程序并使用 Visual Studio 2012或者更高版本? 如果是,则必须在项目文件中使用"AfterCompile"设置来签名应用程序,否则将使用哈希匹配。

请参见本文中的文章:不使用rtc对ClickOnce应用程序进行签名,只使用 kdb,

哪些链接指向出色的robin博客解决方案: http://robindotnet.wordpress.com/2013/04/14/windows-8-and-clickonce-the-definitive-answer-revisited/

原作者:
128 5

删除 System.Deployment 引用并将它的添加到。 我们将项目从VS2012移到VS2015之后,这个问题将在几小时后再次尝试不同的想法。

以下是一个简单的指南,以便如何执行接受的答案:

  • 右键单击项目并选择 unload Project"

  • 右键单击项目并选择"编辑""

  • 在结束项目结束标记之前添加以下内容:


 <Target Name="AfterCompile" Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU'">


 <Exec Command="&quot;C:Program Files (x86)Microsoft SDKsWindowsv7.1ABinsigntool.exe&quot; sign/f &quot;C:tempmyPFX.pfx&quot;/p &quot;admin&quot;/v &quot;$(ProjectDir)obj$(ConfigurationName)$(TargetFileName)&quot;"/>


 </Target>
  • 将 signtool.exe 和 pfx ( 签名) 文件的位置更改为你自己的位置

  • 保存项目文件

  • 重新加载项目

75 4

我使用 Visual Studio 2013解决的许多问题和使用的代码签名都是通过安装vs2013更新 4解决的。

( 也许更新 3已经足够了,但我已经安装了更新 4几天的挫折

我在每个程序集的后期生成事件中将signtool与/sha1 选项一起使用。 ( 始终运行) 。

88 5

清理应用程序调试文件夹然后删除服务器( 目标计算机) 上的发布文件夹everything问题解决 My 。 清理收费不会停止你的应用程序在客户端计算机上的安装。 所以请按照我在 3天后已经为我工作的指导。 然后我发布应用程序,它开始工作,他们的客户端应用程序也更新。

...