5

ClickOnce 可以回滚吗?

我怎样才能做到这一点?

此应用程序是否会在更新时下载所有文件?

如何查看更新中下载了哪些文件?

4

3 回答 3

1

回滚
如果您没有指定所需的最低版本,用户可以通过“添加/删除程序”对话框回滚一个版本。如果要回滚服务器上的部署,则需要使用所有旧文件和新版本号(就像@steenhulthin 所说)。

下载的内容
仅下载已更改的文件。ClickOnce 对您的所有文件进行哈希处理,并将该信息保存在应用程序清单中(没有.application 扩展名的文件,如图)。如果服务器上的整体 ClickOnce 版本比客户端上的新,它会比较各个文件的哈希值以查看需要下载的内容。

下载了哪些文件
要查看下载了哪些文件,请使用Fiddler。它捕获并显示 http 流量,非常棒。学习它。用它。爱它。

只是一个额外的建议。如果您使用 Visual Studio 发布,请停止。使用像Mage这样的工具需要更多的努力,但它可以帮助您了解 ClickOnce 到底做了什么。当它沸腾时,它真的没有很多。使用 Visual Studio 发布向导让它看起来像黑魔法。

于 2011-08-05T04:58:25.073 回答
1

您不能直接回滚 ClickOnce 应用程序。您可以给旧版本一个更高的版本号,然后重新部署/发布应用程序。另请参阅如果我有最低要求的版本,如何回滚 clickOnce?

或者,您可以更改服务器端清单文件以指向旧版本的应用程序,如下所述:如何回滚 ClickOnce 应用程序?

更新 ClickOnce 应用程序时会下载应用程序清单文件中描述的所有文件。应用程序清单文件包含有关 ClickOnce 应用程序中所有文件的信息。我建议阅读有关ClickOnce 部署的 msdn 站点。

于 2011-08-04T21:09:17.330 回答
0

我理解 ClickOnce 版本检查算法如下:

  1. 如果客户端上安装的版本 = 部署到服务器的版本 - 什么也不做
  2. 如果客户端版本 < 服务器版本 - 升级
  3. 如果客户端版本 > 服务器版本:
    1. 如果客户端上指定的 minimumVersion >= 服务器版本 - 显示错误,因为我们有
    2. 如果客户端上指定的 minimumVersion < 服务器版本 - 降级
    3. 如果未在客户端上指定 minimumVersion - 降级
于 2013-09-24T15:54:31.647 回答