3

我处于一个有趣的情况,我维护一个程序的代码,该程序主要由我们的姊妹公司使用和分发。我们准备将该程序分发给所有第 3 方用户,并且由于它在技术上是我们的姊妹公司程序,我们希望将其托管在他们的网站上。(为了匿名,我将在所有地方使用“program”而不是实际的应用程序名称,并使用“www.SisterCompany.com”而不是它们的实际 URL。)

所以我准备好了一切,设置发布设置以在程序启动时检查更新,最低要求的版本,并将安装文件夹 URL 和更新位置设置为“ 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 设置为最初未发布的位置吗?

让我知道是否需要任何其他信息。

谢谢。

4

4 回答 4

5

在整个周末都在抨击这个问题之后,我终于找到了答案。在取消项目签名并删除有问题的文件(一个 xml 文件)上的哈希后,我安装了该程序,但它给了我“Windows Side by Side”错误。我深入研究了应用缓存文件,而不是配置 .xml 文件,它是 clickonce 安装程序所在网站的 HTML 文件之一。事实证明,Web 服务器似乎不喜欢提供 .XML(或 .mdb)文件。

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

我必须确保选择了“使用“.deploy”文件扩展名”,这样 Web 服务器就不会破坏带有它不喜欢的扩展名的文件。

在此处输入图像描述

我不知道为什么那个文件的哈希值会不同。原来它甚至根本不是同一个文件。

于 2013-10-21T21:06:01.303 回答
0

有可能其中一个 FTP 传输是在文本模式下发生的,而不是二进制模式?

于 2013-10-17T21:20:51.573 回答
0

对我来说,问题是 .config 转换是在生成清单后完成的。

于 2016-03-17T10:13:57.923 回答
0

对于五年后仍然遇到麻烦的其他人:

第一个问题是配置 MIME 类型,在 nginx (/etc/nginx/mime.types) 上应该如下所示:

    application/x-ms-manifest       application

请参阅单击一次服务器和客户端配置

对我来说更奇怪的问题是我使用 git 来处理对服务器的推送,即

    git remote add live ssh://user@mybox/path/to/publish
    git commit -am "committing...";git push live master

对大多数事情都很好,但它可能被注册为“更改”,从而阻止了应用程序在本地安装。一旦我开始使用 scp 代替:

   scp -r * user@mybox/path/to/dir/

它工作顺利。

不幸的是,没有很多有用的信息。

于 2018-04-20T22:15:37.580 回答