ClickOnce可以降级应用程序吗?

时间:2015-09-14 20:31:22

标签: clickonce

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

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

2 个答案:

答案 0 :(得分:1)

ClickOnce无法实现您的目标。

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

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

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

答案 1 :(得分:0)

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

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