【发布时间】:2017-01-23 07:14:15
【问题描述】:
我们有一个 .Net 应用程序,它使用 ClickOnce 来自动更新。但是 Click Once 的问题是,无论项目中是否发生任何更改,所有程序集都会得到更新。我正在考虑手动更新仅更改的 dll 到以前 ClickOnce 发布的文件夹并使用 MageUI.exe 更新清单。我还在考虑增加更改的程序集版本,以便我们可以通过查看安装 ClickOnce 应用程序的用户缓存文件夹来跟踪哪些程序集发生了更改。我想知道这是一种可接受的方法吗?谢谢。
【问题讨论】:
-
如果你问我,这听起来像是一个等待发生的问题。如果一个客户错过了特定的“中间”更新怎么办。他将获得一个新版本,但其中可能不包含之前版本中引入的一些他没有获得的更改。
-
所以,点击安装后,我们将检查所有 dll 的版本号。因此,如果更新 1 有一个版本号为 1.1.1.1 的 dll,而更新 2 有另一个版本为 1.1.1.2 的 dll,则更新 3 单击安装后应该有 1.1.1.1 版本的 dll 1 和 1.1.1.2 版本的 dll 2随着更新 3 中引入的更改。实际上,一旦发布的最新点击将被更新以使用 mage ui 添加增量 dll,并且所有客户端都将获得相同的版本,因此,如果客户端使用旧版本,他也会获得更新到最新。
-
但这是否意味着每个版本都必须包含所有先前版本中的所有内容以及当前版本的更改?意思是,每个版本都会变得“更胖”,直到某个时候下一个版本需要包含所有内容?无论如何,据我所知,支持从 any 旧版本升级到当前版本的唯一方法是在每个版本中包含所有内容。如果您的用户数量有限,并且能够控制他们定期更新,那么也许这可以发挥作用......