如何从每个ClickOnce更新中减少供应商dll的大小?

时间:2010-01-18 23:55:01

标签: windows dll clickonce

有没有办法减少每个ClickOnce更新的大小? 每个更新都包含所有自定义verdors dll(例如Telerik,NHibernate等),是否有一种方法只包含第一次初始安装而不包括在以后的更新中?

我只想在ClickOnce更新文件中使用最新更新的应用程序dll和.exe,以便客户端可以非常快速地通过网络下载更新。

请分享您在ClickOnce应用程序中使用的建议或做法。 感谢。

2 个答案:

答案 0 :(得分:2)

扩大@Darrel Miller的答案。 ClickOnce 下载已更改的文件。它为每个文件生成一个哈希值。如果有关文件的任何更改(文件大小,修改日期等),将生成新的哈希。当用户在更新后启动应用程序时,它会将其本地文件哈希值与服务器上的文件哈希值进行比较,以确定要下载的内容。

一个警告是安装进度对话框。即使正在下载单个文件,它也始终显示应用程序的整个大小。这只是对话框的一个错误,所以不用担心。您可以使用Fiddler等工具验证它是否仅下载所需文件。

答案 1 :(得分:1)

如果DLL没有更改,那么ClickOnce将不会重新下载DLL,它们将从客户端上的先前安装中复制。