ClickOnce版本未更新

8

我的ClickOnce应用程序目前版本为2.0.0.12。我更新了该应用程序,将发布和程序集版本更改为2.0.0.13。当我在客户端桌面上启动应用程序时,它会检查更新,但不认识可用的更新并正常运行。

我启动了Fidler,并查看了请求和清单,它仍然引用2.0.0.12版本。

在服务器上,我完全删除了2.0.0.12版本,关闭了服务器上的缓存并卸载了桌面应用程序。

当我启动安装程序时,它无法下载文件,因为它找不到2.0.0.12版本文件夹。我在服务器上更新了Application.htm、Setup.exe和.application文件,并反映出正确的2.0.0.13版本。

我的问题是:ClickOnce应用程序从哪里获取对先前版本的引用?

这是错误日志:

PLATFORM VERSION INFO
    Windows                 : 6.1.7601.65536 (Win32NT)
    Common Language Runtime : 4.0.30319.17020
    System.Deployment.dll   : 4.0.30319.17020 built by: FXM3REL
    clr.dll                 : 4.0.30319.17020 built by: FXM3REL
    dfdll.dll               : 4.0.30319.17020 built by: FXM3REL
    dfshim.dll              : 4.0.31106.0 (Main.031106-0000)

SOURCES
    Deployment url          : {URL_REMOVED}\AlphaManager.application
    Server                  : Microsoft-IIS/7.0
    X-Powered-By            : ASP.NET
    Deployment Provider url : {URL_REMOVED}\/install/AlphaManager.application
    Application url         : {URL_REMOVED}\/install/Application%20Files/AlphaManager_2_0_0_12/AlphaManager.exe.manifest
    Server                  : Microsoft-IIS/7.0
    X-Powered-By            : ASP.NET

IDENTITIES
    Deployment Identity     : AlphaManager.application, Version=2.0.0.12, Culture=neutral, PublicKeyToken=4bf6f9c465057aee, processorArchitecture=x86
    Application Identity    : AlphaManager.exe, Version=2.0.0.12, Culture=neutral, PublicKeyToken=4bf6f9c465057aee, processorArchitecture=x86, type=win32

APPLICATION SUMMARY
    * Installable application.

ERROR SUMMARY
    Below is a summary of the errors, details of these errors are listed later in the log.
    * Activation of {URL_REMOVED}\/install/AlphaManager.application resulted in exception. Following failure messages were detected:
        + Downloading {URL_REMOVED}\/install/Application Files/AlphaManager_2_0_0_12/Microsoft.mshtml.dll.deploy did not succeed.
        + The remote server returned an error: (404) Not Found.
4个回答

5
在项目属性下,点击“更新”按钮...确保设置了正确的最低所需版本。这个数字不会像其他发布版本号一样自动更新:

这不太可能是问题所在。问题中的日志似乎引用了正确的.application文件,然后继续从2.0.0.12请求应用程序文件。这表明新的.application文件引用的2.0.0.13从未被下载。也许是由于缓存过期,正如另一个答案中所建议的那样。 - Hugh W
这很可能不是问题所在。问题中的日志似乎引用了正确的.application文件,然后继续请求2.0.0.12版本的应用程序文件。这表明新的.application文件引用的2.0.0.13版本从未被下载。可能是由于缓存过期,正如另一个回答中所建议的那样。 - Hugh W

3
原因是互联网上的安装文件被缓存了。
要解决此问题,您可以在互联网上的安装文件夹中创建 .htaccess 文件。
编辑该文件并添加以下示例代码,并更改 "index.html" 和 ".application" 文件的名称:


> FileETag None Header unset ETag Header set
> Cache-Control "max-age=0, no-cache, no-store, must-revalidate" Header
> set Pragma "no-cache" Header set Expires "Wed, 11 Jan 1984 05:00:00
> GMT"   FileETag None Header unset ETag
> Header set Cache-Control "max-age=0, no-cache, no-store,
> must-revalidate" Header set Pragma "no-cache" Header set Expires "Wed,
> 11 Jan 1984 05:00:00 GMT" 


点击查看示意图


0

我在使用互联网缓存时遇到了问题,它使用了代理服务器(公司局域网)的 .application 缓存,并且没有下载新内容...

当我打开最低版本时,它停止工作了...

所以我向IT部门寻求帮助,他们给了我帮助...之后再也没有问题了...


3
那么,你的回答是让IT来帮助你吗? - Andy Wiesendanger
1
我的问题与Internet缓存有关,而不是ClickOnce。这是事实,因为在其他地方它可以正常工作。 - Fabiano Cores

0

听起来像是ClickOnce没有意识到它安装了应用程序的v12版本,或者只部分安装了它,或者(更有可能的是),您将发布属性设置为仅在线。确保将其设置为在线/离线。

如果这仍然无法解决您的问题,请卸载该应用程序并重新安装,然后尝试发布v14并查看是否可以检测到它。

确保您没有设置updateURL(假设您希望从用于安装的相同URL中获取更新,通常情况下是这样)。

我不认为将其设置为必需更新会解决您的问题。听起来它没有访问正确的清单。我还会确保它正在寻找部署清单(.application文件)在部署目录的顶层文件夹中,而不是在版本化文件夹(应用程序文件/yourapp_1_1_1_12/yourapp.application)下的那个。您是直接从VS发布,还是以另一种方式手动/编程创建清单?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接