0

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

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

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

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

感谢您的回答。

4

2 回答 2

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)无法回滚
于 2012-04-30T13:44:13.750 回答
0

您可以编写一个小程序来执行此操作。您可以使用此处找到的卸载代码。卸载将始终显示一个对话框,询问用户是否确定。代码在该对话框中搜索 OK 按钮并单击它。您可以随时修改它以查找恢复版本的按钮(我不记得文本),然后选择它,然后单击“确定”按钮。

于 2012-05-05T18:14:06.870 回答