在ClickOnce中维护程序集版本?

我们有一个使用ClickOnce自动更新的.Net应用程序。 但Click Once的问题在于,无论项目中是否发生任何变化,所有程序集都会得到更新。 我正在考虑手动 将已更改的DLL 手动更新到以前的ClickOnce发布的文件夹,并使用MageUI.exe更新清单。 我也想增加更改的程序集版本,以便通过查看安装ClickOnce应用程序的用户的缓存文件夹来跟踪哪些程序集已更改。 我想知道这是一种可接受的方法吗? 谢谢。


我认为这不是必要的。 虽然ClickOnce提供的更新对话框不会告诉您,但ClickOnce在满足以下条件时不会下载文件:

  • 该文件的哈希值是相同的
  • 该文件的时间戳是一样的。
  • 对于装配,可能需要强调它们的名称
  • 相反,它会复制以前版本的文件。

    因此,如果您使用强名称并且在没有更改时不重建程序集,则ClickOnce应该按照您希望的方式执行。

    看到这里和这里以供参考。

    这是官方消息来源说的

    更新应用程序时,除非文件已更改,否则ClickOnce不会下载新版本应用程序的所有文件。 相反,它会将当前应用程序的应用程序清单中指定的文件的哈希签名与新版本的清单中的签名进行比较。 如果文件签名不同,ClickOnce会下载新版本。 如果签名匹配,则文件从一个版本到下一个版本没有更改。 在这种情况下,ClickOnce将复制现有文件并在新版本的应用程序中使用它。 这种方法可以防止ClickOnce再次下载整个应用程序,即使只有一个或两个文件发生了变化。

    链接地址: http://www.djcxy.com/p/94747.html

    上一篇: Maintaining assembly version in ClickOnce?

    下一篇: Trying to remove a view index above child count error