无需添加/删除程序即可回滚到以前版本的ClickOnce应用程序

时间:2012-04-30 13:24:20

标签: .net deployment clickonce

它基本上都在标题中,但我仍然会进一步解释。

ClickOnce应用程序的设计意味着无需管理员权限即可轻松安装。但是,要将ClickOnce应用程序回滚到其先前版本,必须使用“添加/删除程序”功能,如Microsoft文档中所述。

问题在于,在我的企业中,特定策略会阻止用户使用此功能。以管理员身份运行appwiz.cpl在这里没有用,因为ClickOnce应用程序是由用户安装的。

那么还有其他方法可以将ClickOnce应用程序回滚到以前的版本吗?

感谢您的回答。

2 个答案:

答案 0 :(得分:1)

在我之前的一份工作中,我们没有向用户提供是否升级的选项;每个版本都以其版本作为最低版本推出。然而,这确实产生了令人讨厌的副作用,即在新版本出现问题时不允许用户降级。

为了解决这个问题,每次我们发布版本时,我们会再次将相同版本发布到不同的位置,但版本增加两倍(换句话说,版本将是高于我们发布的下一个版本)。如果我们不得不回滚,我们只需要将版本从辅助位置复制到主位置,并使用该特定版本的文件覆盖主.application文件。

这确实要求您对版本控制有所规范,因为整个方法取决于备份版本高于下一个更高的当前版本,以便ClickOnce认为它实际上更新。您不希望版本太高,因为您发布的任何版本替换它的版本自然必须高于此版本。

例如,它可能会是这样的:

Publish version 1.0.0 to primary location and 1.2.0 to backup location
Clients update
Publish version 1.1.0 to primary location and 1.3.0 to backup location
Clients update
Calamity ensues
Copy version 1.2.0 from backup to primary (which is, in reality, version 1.0.0)
Clients update
All is well
Publish version 1.3.0 to primary location and 1.5.0 to backup location
etc.

有一些限制:

  • 如上所述,您的版本控制必须遵守纪律
  • 无法从
  • 回滚在回滚(上面的版本1.3.0)之后发布的更新

答案 1 :(得分:0)

您可以编写一个可以执行此操作的小程序。您可以使用找到的卸载代码here。卸载将始终显示一个对话框,询问用户是否确定。代码在该对话框中搜索“确定”按钮并单击它。在单击“确定”按钮之前,您始终可以修改此选项以查找还原版本并选择它的按钮(我记不起文本)。