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