ClickOnce 可以降级应用程序吗?
Can ClickOnce downgrade an application?
目前,我们有一个 ClickOnce 部署,如果客户端在启动应用程序时比他们的客户端更新,则强制用户从我们的发布位置下载客户端。我们想要这种行为,因为它会强制执行用户正在使用的客户端应用程序。但是,有时我们需要回滚软件。发生这种情况时,我们知道的唯一解决方案是卸载应用程序并让它们从发布位置重新安装。
有没有办法强制 ClickOnce 从发布位置下载版本,如果它不同于(不仅仅是新的)它们 运行?
ClickOnce 做不到您想做的事。
您的主要选择是发布版本号增加的降级代码。你说你不想这样做,因为它会让用户感到困惑。我倾向于保留只有 ClickOnce 使用的 ClickOnce 版本。我单独维护自己的应用程序版本,这就是我在应用程序中向用户显示的内容。是的,ClickOnce 版本仍显示在 Add/Remove 程序中,但我认为这非常小。
另一种选择是将您的 ClickOnce 部署更改为不强制要求最低版本。然后启用卸载对话框上的选项以回滚到以前的版本。我一点也不喜欢这样,但这是 ClickOnce 支持的一种回滚方案。
我看到的唯一其他选择是尝试通过代码做一些事情。在您的应用程序中确定需要降级。不知何故 shell 到您的应用程序外部的脚本或 exe 将卸载它(可能使用 this)并打开 link 到您的 .application 文件以重新安装最新版本。这完全是猜测。我不确定这是否可能。
假设您没有填写最低版本,请尝试将先前版本的 .application 文件复制到部署所在的顶级目录中的文件。该目录中的 .application 文件告诉应用程序要安装哪一个。假设它指向正确的部署文件夹(与其版本匹配),并且您在部署服务器上有该文件夹,它应该降级用户安装的版本。
另一种方法是复制以前版本的所有文件。将文件夹名称更改为较新的版本。然后使用 mageui 更新并签署这两个清单,并将所有内容复制到服务器。由于版本较新,因此将自动安装。
目前,我们有一个 ClickOnce 部署,如果客户端在启动应用程序时比他们的客户端更新,则强制用户从我们的发布位置下载客户端。我们想要这种行为,因为它会强制执行用户正在使用的客户端应用程序。但是,有时我们需要回滚软件。发生这种情况时,我们知道的唯一解决方案是卸载应用程序并让它们从发布位置重新安装。
有没有办法强制 ClickOnce 从发布位置下载版本,如果它不同于(不仅仅是新的)它们 运行?
ClickOnce 做不到您想做的事。
您的主要选择是发布版本号增加的降级代码。你说你不想这样做,因为它会让用户感到困惑。我倾向于保留只有 ClickOnce 使用的 ClickOnce 版本。我单独维护自己的应用程序版本,这就是我在应用程序中向用户显示的内容。是的,ClickOnce 版本仍显示在 Add/Remove 程序中,但我认为这非常小。
另一种选择是将您的 ClickOnce 部署更改为不强制要求最低版本。然后启用卸载对话框上的选项以回滚到以前的版本。我一点也不喜欢这样,但这是 ClickOnce 支持的一种回滚方案。
我看到的唯一其他选择是尝试通过代码做一些事情。在您的应用程序中确定需要降级。不知何故 shell 到您的应用程序外部的脚本或 exe 将卸载它(可能使用 this)并打开 link 到您的 .application 文件以重新安装最新版本。这完全是猜测。我不确定这是否可能。
假设您没有填写最低版本,请尝试将先前版本的 .application 文件复制到部署所在的顶级目录中的文件。该目录中的 .application 文件告诉应用程序要安装哪一个。假设它指向正确的部署文件夹(与其版本匹配),并且您在部署服务器上有该文件夹,它应该降级用户安装的版本。
另一种方法是复制以前版本的所有文件。将文件夹名称更改为较新的版本。然后使用 mageui 更新并签署这两个清单,并将所有内容复制到服务器。由于版本较新,因此将自动安装。