我们有一个.Net应用程序,它使用ClickOnce来自动更新。但Click Once的问题在于,无论项目中是否发生任何变化,所有程序集都会得到更新。我在想手动更新只有更改dll到以前的ClickOnce发布文件夹和更新清单使用MageUI.exe。我也想到增量更改组件版本,以便我们可以通过查看安装ClickOnce应用程序的用户的缓存文件夹来跟踪哪些程序集已更改。我想知道这是一个可接受的的方法吗?谢谢。在ClickOnce中维护程序集版本?
7
A
回答
4
我认为这不是必需的。同时通过的ClickOnce提供的更新对话框不会这么告诉你,当满足以下条件的ClickOnce将无法下载文件:
- 该文件的哈希值是相同的
- 该文件的时间戳是相同的。
- 对于组件,它可能需要强命名他们
相反,它会在文件从先前版本复制。
因此,如果您使用强名称并且在没有更改时不重建程序集,则ClickOnce应该按照您希望的方式执行。
Here是官方消息说
当更新应用程序,除非该文件已更改的ClickOnce不下载的所有文件,为应用程序的新版本。相反,它会将当前应用程序的应用程序清单中指定的文件的哈希签名与新版本的清单中的签名进行比较。如果文件签名不同,ClickOnce会下载新版本。如果签名匹配,则文件从一个版本到下一个版本没有更改。在这种情况下,ClickOnce将复制现有文件并在新版本的应用程序中使用它。这种方法可以防止ClickOnce再次下载整个应用程序,即使只有一个或两个文件发生了变化。
相关问题
- 1. 如何在.NET ClickOnce应用程序中将发布版本同步到程序集版本?
- 2. Git - 维护多个版本
- 3. 维护软件版本
- 4. Incrementing CruiseControl.NET for ClickOnce的程序集版本发布
- 5. 如何在版本中维护版本/构建组件?
- 6. ClickOnce需要程序集MyProject在GAC中?
- 7. 维护程序员维基
- 8. 维护Android应用程序版本的最佳做法
- 9. 为GWT Web应用程序维护构建版本号
- 10. 在PCL中获取程序集版本
- 11. 在将来的应用程序版本中维护核心数据
- 12. 修补程序与修补程序与维护版本与服务包与
- 13. 服务Fabric群集可否维护旧版本的服务?
- 14. .NET程序集版本
- 15. 维护我的C++项目的版本
- 16. 维护Web的开发版本应用
- 17. 如何维护Lotus Notes版本? C#
- 18. 使用git来维护旧版本
- 19. 维护版本的最佳方式
- 20. 代码版本控制和维护
- 21. 维护Cassandra集群
- 22. Wix安装程序维护
- 23. 从版本中排除程序集
- 24. SQL Server 2000/2005 - 维护开发版本和生产版本
- 25. 以便捷的方式维护MPI版本和非MPI版本
- 26. 维护版本与正常版本相关的策略?
- 27. 让TeamCity将Subversion版本号集成到程序集版本
- 28. 维护对象的有序集合
- 29. 维护插入顺序的Java集合
- 30. Clickonce部署程序集必须安装在全局程序集缓存(GAC)中
听起来像是等待发生的问题,如果你问我。如果一位客户错过了特定的“中间”更新,该怎么办?他会得到一个新版本,但是可能不包含前一版本中引入的一些他没有得到的更改。 – user1429080
所以,点击一次安装后,我们将检查验证所有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,并且所有客户端将获得相同的发布,因此,如果客户端在较旧版本中,他也会得到更新到最新。 –
但这并不意味着每个版本都必须包含所有以前的版本+当前版本的更改?意思是,每个发行版都会变得更加“胖”,直到下一个发行版需要包含所有内容为止。无论如何,据我所知,支持从任何旧版本升级到当前版本的唯一方法是在每个版本中包含所有内容。如果你有一组用户,并且能够控制它们定期更新,那么也许这可以起作用... – user1429080