有没有办法(hacky会这样做)允许用户返回以前版本的ClickOnce网络部署的应用程序?
我查看了文档和API,似乎没有办法.您可以有选择地选择是否要更新,但一旦更新,似乎就没有办法了.
您可以通过更改服务器清单文件恢复服务器端的旧版本.当客户端重新启动应用程序时,它将看到它的版本与服务器所说的"当前"版本不同,它将下载新版本.此服务器清单文件通常始终指向最新版本,但它不必.
以下是如何更改它(我使用Visual Studio 2008发布.其他版本可能具有不同的发布文件夹结构).
与publish.htm在同一文件夹中的是一个名为的XML文档[appName].application
.这是客户端用于比较其当前版本的服务器端清单文件.本文档中包含客户端应运行的"当前"版本以及可以找到部署文件的服务器上的位置.
在同一位置,publish.htm
也是一个名为"应用程序文件"的文件夹.此文件夹包含每个先前发布的子文件夹.在每个子文件夹中都有另一个XML文档,其名称与我上面提到的名称相同[appName].application
.复制此文件(从包含要还原到的版本的任何文件夹)并将其粘贴到与publish.htm
(几个级别)相同的文件夹中.当客户端应用程序重新启动时,它将显示为新版本可用,下载并运行它.客户端现在将运行以前的版本.
ClickOnce将使用您发送的任何版本.如果您向他们发送旧版本,他们将回滚到旧版本.
回到五月,我的好友大卫写了一篇关于如何在每个用户的基础上做这件事的文章.我们可以让每个用户都拥有不同的版本.应用程序甚至告诉数据库用户想要哪个版本,因此他们理论上可以更改其版本,然后只需重新启动应用程序.
使用ClickOnce进行细粒度版本控制
您可以进入"添加/删除"应用程序并选择您的应用程序,然后选择获取上次安装.