传输已发布文件时,ClickOnce错误"与清单中指定的计算哈希值不同"

Ant*_*ony 3 clickonce visual-studio

我处于一个有趣的情况,我维护一个主要由我们的姐妹公司使用和分发的程序的代码.我们已准备好将该计划分发给所有第三方用户,因为从技术上讲,这是我们的姐妹公司计划,我们希望将其托管在他们的网站上.(为了不相同,我将在任何地方使用'program'而不是实际的应用程序名称,并使用'www.SisterCompany.com'而不是实际的URL.)

所以我准备好了,设置发布设置以检查程序启动时的更新,所需的最低版本,并将Insallation Folder URL和Update Location设置为" http://www.SisterCompany.com/apps/program / ",实际发布文件夹位置为"C:\ LocalProjects\Program\Publish \".其他一切都非常标准.

发布后,我确认直接从我的C:驱动器上的发布位置运行时,所有内容都安装并正常工作.所以我把所有东西放在我们的FTP服务器上,而我们姐妹公司的那个人把它拉下来,把所有东西放在他们网络服务器上的'/ apps/program /'目录中.

这就是它变坏的地方.当我尝试从他们的网站安装它时,我得到- File, Program.exe.config, has a different computed hash than specified in manifest.错误.我测试了一下,我甚至尝试从我的网络上的任何网络位置安装,而不是我本地的C:驱动器.

在visual studio中进行初始发布后,我没有更改任何文件(这是我通过搜索此错误找到的答案/原因).

可能是什么导致了这个?是因为我将安装文件夹URL设置为最初未发布的位置?

如果需要任何其他信息,请与我们联系.

谢谢.

Ant*_*ony 5

在整个周末对抗这个问题之后,我终于找到了答案.在取消签名项目并删除有问题的文件(一个xml文件)上的哈希之后,我得到了安装程序,但是它给了我'Windows并排'错误.我钻进App Cache中的文件是,而不是config .xml文件,它是来自网站上的clickonce安装程序托管的HTML文件之一.事实证明,Web服务器似乎不喜欢提供.XML(或.mdb结果)文件.

这篇MSDN文章最终给了我最终解决方案:

我必须确保选择"使用".deploy"文件扩展名",以便Web服务器不会破坏具有它不喜欢的扩展名的文件.

在此输入图像描述

我无法弄清楚为什么一个文件的哈希会有所不同.事实证明它甚至根本不是同一个文件.