.net Clickonce签名的应用程序失败,并显示“0”;具有与清单中指定的不同的计算哈希;。法师无法解决问题

.net Clickonce签名的应用程序失败,并显示“0”;具有与清单中指定的不同的计算哈希;。法师无法解决问题,.net,deployment,clickonce,signing,mage,.net,Deployment,Clickonce,Signing,Mage,这件事我已经挣扎了好几天了。我看过其他类似的帖子,但解决方案似乎对我不起作用 我有一个有效的代码签名证书,几个月来一直在使用它对ClickOnce应用程序进行签名。我意识到我没有对可执行文件和DLL本身进行签名,所以我尝试这样做。现在,每次我发布并运行setup.exe时,它都会失败:“文件xxxxxx.dll的计算哈希值与清单中指定的不同。” 如果我没有签署exe和DLL,我可以重新部署。在发布之前,我确保在所有目录(Target,Obj)中对exe/DLL的所有副本进行了签名。我尝试过使用M

这件事我已经挣扎了好几天了。我看过其他类似的帖子,但解决方案似乎对我不起作用

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

如果我没有签署exe和DLL,我可以重新部署。在发布之前,我确保在所有目录(Target,Obj)中对exe/DLL的所有副本进行了签名。我尝试过使用Mage/MageUI,但没有成功。是否可以在没有签名代码的情况下配置ClickOnce安装,然后发布签名代码?似乎合乎逻辑,但也许我遗漏了什么

谢谢,
Gregg

您是否有可能尝试部署WPF应用程序并使用Visual Studio 2012或更高版本?如果是这样,您必须使用项目文件中的“AfterCompile”设置来对应用程序进行签名,否则最终会导致哈希不匹配

请参阅此帖子:

Robin优秀博客解决方案的链接:

我在使用Visual Studio 2013进行clickonce和代码签名时遇到的许多问题,包括这个特殊问题,都是通过安装vs2013 update 4解决的

(也许更新3已经足够了,但我在几天后安装了更新4)


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

要检查的第一件事:发布-更新-应用程序更新-URL是否正确(例如,您有一个测试URL和一个部署URL)

要检查的第二件事:删除System.Deployment引用并将其添加回。在将项目从VS2012移动到VS2015后,我们遇到了问题,在尝试了几个小时的不同想法后,这一行动使它再次工作

顺便说一句-这里有一个简单的指南,告诉你如何做公认的答案:

  • 右键单击项目并选择“卸载项目”

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

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


在清理应用程序的调试文件夹,然后从服务器(目标计算机)上的发布文件夹中删除所有内容后,问题得到解决。清理发布fodler不会停止安装在客户端计算机上的应用程序的工作。因此,请按照说明进行操作,经过3天的搜索,这已经对我有效了。
然后我重新发布应用程序,它开始工作,客户端应用程序也随之更新

我仍然在使用Visual Studio 2015、应用程序配置转换/构建配置、TFS和使用不同的发布分支。经过大量研究,直到我开始使用“发布向导”按钮,我才找到解决此问题的方法


如果您使用的是VS2015,请首先尝试使用“发布向导…”按钮而不是“立即发布”按钮发布。显然,发布向导按钮会在应用程序配置转换完成后更新清单文件。

谢谢!!!我刚刚证实了这一点。我从未怀疑WPF在后来的visual studio中是一个问题。我花了好几天的时间想弄明白这一点。在2019年的Vs比赛中,我为自己感到惊讶。删除了bin文件夹和publish文件夹,然后使用了向导。哇@哈克朱利叶斯,这个问题还在VS2019发生吗?我原以为微软现在已经解决了这个问题。实际上它坏了一次,现在不再工作了:)这对你不起作用:“发布向导”按钮>下一个X3>完成。“立即发布”按钮不再适用于我们,但向导按钮始终有效。