非常奇怪的ClickOnce Web部署行为(缓存)
本文关键字:缓存 部署 Web ClickOnce 非常 | 更新日期: 2023-09-27 18:08:24
所以我最近通过ClickOnce将我的应用程序部署到web服务器(确切地说是WAMP),并使用VS2010自动生成网页和所有这些内容。用户可以正常下载应用程序。
当我发布第一个更新时,这种奇怪就开始了。发生了两种不同的情况。当再到网站点击安装时,它总是安装第一个版本而不是更新。此外,我在应用程序本身有一个"检查更新"按钮,当他们点击它时,它会显示"无更新可用"(使用此代码的变体)。
我有一个预感,我让他们清除他们的浏览器缓存,并尝试在应用程序中的"检查更新"按钮再次…你瞧,它起作用了。这是怎么回事?它是否缓存网页,因此看不到更新?当他们访问它时,网页上的文字已经更新,说这是新版本,但他们无法安装,直到他们清除缓存。此外,是否检查更新代码也击中网页(否则如何不工作)?会在自动生成的网页的标题中放置一个无缓存HTML行来修复这个问题吗?欢迎提出任何建议或见解
我想看看你的Apache是如何设置缓存的,就像你说的。看看它发出了什么头信息。确保它以正确的MIME类型application/x-ms-application
ClickOnce安装后,它将始终获得相同的Uri example.com/app/app.application
,并将安装的版本号与刚刚下载的版本号进行比较。通过Visual Studio发布时,它会覆盖该位置的文件。所以,是的,我可以看到这是一个缓存问题。对我来说很奇怪,ApplicationDeployment API将使用相同的浏览器缓存,但谁知道呢,也许它内部使用IE。
我有我的测试ClickOnce应用程序编写在MSDN的异步示例之上。有一个进度字符串,您可以看到它在每次运行时下载.application。在UNC路径或启用静态web托管的AWS S3上托管部署时,我没有看到同样的问题。这就是为什么我认为它可能是Apache中的东西?