【发布时间】:2013-09-24 23:54:31
【问题描述】:
是否可以回滚 ClickOnce?
我该怎么做?
此应用程序是否会在更新时下载所有文件?
如何查看更新中下载了哪些文件?
【问题讨论】:
标签: deployment clickonce rollback
是否可以回滚 ClickOnce?
我该怎么做?
此应用程序是否会在更新时下载所有文件?
如何查看更新中下载了哪些文件?
【问题讨论】:
标签: deployment clickonce rollback
您不能直接回滚 ClickOnce 应用程序。您可以给旧版本一个更高的版本号,然后重新部署/发布应用程序。另见How can I rollback clickOnce if I have a minimum required version?
或者,您可以更改服务器端清单文件以指向旧版本的应用程序,如下所述:How can I roll-back a ClickOnce application?
在更新 ClickOnce 应用程序时会下载应用程序清单文件中描述的所有文件。应用程序清单文件包含有关 ClickOnce 应用程序中所有文件的信息。我建议阅读 ClickOnce deployment 上的 msdn 网站。
【讨论】:
回滚
如果您没有指定最低要求版本,用户可以通过“添加/删除程序”对话框回滚一个版本。如果你想在你的服务器上回滚部署,你需要使用新版本号的所有旧文件(就像@steenhulthin 说的那样)。
下载的内容
仅下载已更改的文件。 ClickOnce 对您的所有文件进行哈希处理,并将该信息保存在应用程序清单中(没有 .application 扩展名的那个,如图)。如果服务器上的整体 ClickOnce 版本比客户端上的新,它会比较各个文件的哈希值以查看需要下载的内容。
下载了哪些文件
要查看下载了哪些文件,请使用Fiddler。它捕获并显示 http 流量,非常棒。学习它。用它。喜欢它。
只是一个额外的建议。如果您使用 Visual Studio 发布,请停止。使用像 Mage 这样的工具需要更多的努力,但它可以帮助您了解 ClickOnce 到底做了什么。当它沸腾时,它真的没有很多。使用 Visual Studio 发布向导让它看起来像黑魔法。
【讨论】:
我理解 ClickOnce 版本检查算法如下:
【讨论】: