【问题标题】:Can ClickOnce downgrade an application?ClickOnce 可以降级应用程序吗?
【发布时间】:2015-09-14 20:31:22
【问题描述】:

目前,我们有一个 ClickOnce 部署,如果用户在启动应用程序时它比他们的客户端更新,它会强制用户从我们的发布位置下载客户端。我们想要这种行为,因为它强制执行用户正在使用的客户端应用程序。但是,有时我们需要回滚软件。发生这种情况时,我们知道的唯一解决方案是卸载应用程序并让它们从发布位置重新安装。

如果 ClickOnce 与正在运行的版本不同(不仅仅是新版本),是否有办法强制 ClickOnce 从发布位置下载版本?

【问题讨论】:

  • 说真的,经常需要回滚生产版本并很好地说明了您的软件 QA。此外,显然,降级是一种更新
  • @MarcusMüller 实际上,回滚不是由于缺陷/错误而导致的回滚,所以它根本不代表我的软件 QA。
  • 是否有什么阻止您将降级发布为新更新?
  • @codeConcussion 你的意思是改变版本号,让它看起来像升级吗?
  • @Ghost - 对。旧代码。新版本号。

标签: clickonce


【解决方案1】:

ClickOnce 无法实现您想要做的事情。

您的主要选择是发布带有递增版本号的降级代码。您说您不想这样做,因为它会让用户感到困惑。我倾向于保留只有 ClickOnce 使用的 ClickOnce 版本。我单独维护自己的应用程序版本,这就是我在应用程序中向用户显示的内容。是的,ClickOnce 版本仍然显示在“添加/删除程序”中,但我认为这非常小。

另一种选择是将 ClickOnce 部署更改为不强制要求最低版本。然后启用卸载对话框上的选项以回滚到以前的版本。我一点也不喜欢这个,但它是 ClickOnce 支持的一种回滚场景。

我看到的唯一其他选择是尝试通过代码做某事。在您的应用中确定需要降级。不知何故,您的应用程序外部的脚本或 exe 将卸载它(可能使用 this)并打开指向您的 .application 文件的链接以重新安装最新版本。这是完全的猜测。我不确定这是否可能。

【讨论】:

    【解决方案2】:

    假设您没有填写最低版本,请尝试将先前版本的 .application 文件复制到部署所在的顶级目录中的文件上。该目录中的 .application 文件告诉应用程序要安装哪一个。假设它指向正确的部署文件夹(与其版本匹配),并且您的部署服务器上有该文件夹,它应该降级用户安装的版本。

    另一种方法是复制以前版本的所有文件。将文件夹名称更改为较新的版本。然后使用 mageui 更新和签署这两个清单,并将所有内容复制到服务器。这将自动安装,因为版本较新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-29
      • 1970-01-01
      • 2010-10-12
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 2010-09-14
      • 1970-01-01
      相关资源
      最近更新 更多