【发布时间】:2014-09-09 10:07:17
【问题描述】:
我有一个 .NET ClickOnce 应用程序。有时新版本的安装失败,用户无法再启动应用程序。
在本地计算机上卸载失败的应用程序并重新安装时,一切正常。
当我回滚到以前的版本(从 Windows 控制面板)时,它也可以工作,但回滚后我无法重试安装失败的更新。这意味着,即使我尝试通过代码显式更新它,客户端也会忽略回滚后的较新版本(实际上是在服务器上发布的)。我使用的代码类似于这个例子http://msdn.microsoft.com/en-us/library/ms404263.aspx。
有什么方法可以重试安装以前回滚的更新?
我现在已经使用另一个应用程序对其进行了测试,该应用程序也使用 ClickOnce 直接从 Visual Studio 部署到 IIS 服务器。行为略有不同。当我在启动应用程序后回滚应用程序时,它确实提供了一次更新,但在拒绝更新后,它在启动期间不再提供。
所以现在在我看来,也许从安装 URL 而不是从快捷方式启动应用程序可能会奏效。但可以肯定的是,我会等到更新再次失败。
【问题讨论】:
-
不知道您的问题的答案,但我知道 WiX 爱好者对 ClickOnce 嗤之以鼻,并说它存在某些内在问题。 stevestreeting.com/2013/05/12/… 抱歉,我以为我可以找到其他链接,但找不到 - 我确定我在 WiX 邮件列表等上看到过 ClickOnce 的讨论(相当消极)。
-
@RenniePet 是的,当我决定应用程序更新技术时,我已经阅读了那篇文章。对我来说,这仍然是最简单的方法,并且没有太大的麻烦。
-
单击一次应该检查版本号,如果服务器包含更新(更高)的版本,它应该下载它。确定回滚版本上的版本号小于服务器上的版本号吗?
-
@pSattele:是的,我是。问题可能与此stackoverflow.com/questions/5106000/… 有关。不过还是谢谢。