2

所以我最近通过 ClickOnce 将我的应用程序部署到 Web 服务器(确切地说是 WAMP),并让 VS2010 自动生成网页和所有爵士乐。用户能够很好地下载该应用程序。

当我推出我的第一次更新时,奇怪就开始了。发生了2种不同的情况。然后什么时候到网站并点击安装,它总是安装第一个版本而不是更新。此外,我在应用程序本身中有一个“检查更新”按钮,当他们点击它时,它会说“没有可用的更新”(使用此代码的变体)。

我有预感让他们清除浏览器缓存并再次尝试应用程序中的“检查更新”按钮……你瞧,它起作用了。

这里发生了什么?它是否缓存了网页,因此看不到更新?当他们访问它时,网页上的文字已经更新,说它是新版本,但在清除缓存之前他们无法安装。此外,是否也会检查网页上的更新代码(否则这也不起作用)?在自动生成的网页标题中放置一个 NO-CACHE HTML 行会解决这个问题吗?欢迎任何建议/见解。

4

1 回答 1

2

正如你所说,我会研究你的 Apache 是如何设置缓存的。查看它发送的标头。确保它正在发送具有正确 MIME 类型的 .application 文件application/x-ms-application

安装 ClickOnce 后,它总是会得到相同的 Uri example.com/app/app.application,并将安装的版本号与刚刚下载的版本号进行比较。当您通过 Visual Studio 发布时,它会覆盖该位置的文件。所以,是的,我可以看到这是一个缓存问题。我很奇怪 ApplicationDeployment API 会使用相同的浏览器缓存,但谁知道它可能在内部使用 IE。

我在 MSDN 的异步示例之上编写了我的测试 ClickOnce 应用程序。有一个进度字符串,您可以在其中看到它在每次运行时下载 .application。我没有看到与您在 UNC 路径或启用了静态 Web 托管的 AWS S3 上托管部署相同的问题。这就是为什么我认为它可能是 Apache 中的东西?

于 2013-04-12T06:21:41.003 回答