2010-01-18 53 views
1

有沒有辦法減少每個ClickOnce更新的大小? 每個更新都包含所有自定義verdors dll(例如Telerik,NHibernate等),並且有沒有辦法只包含第一次初始安裝,並且不包括在以後的更新中?如何從每個ClickOnce更新中減少供應商dll的大小?

我只想在ClickOnce更新文件中更新最新的應用程序dll和.exe,以便客戶端可以非常快速地通過網絡下載更新。

請分享您在ClickOnce應用程序中使用的建議或慣例。 謝謝。

回答

1

如果DLL不改變,那麼ClickOnce將不會重新下載DLL,它們將從客戶端上的先前安裝中複製。

2

擴展@達勒爾米勒的答案。 ClickOnce 只有下載已更改的文件。它爲每個文件生成一個散列。如果有關於文件更改的任何信息(文件大小,修改日期等),將生成一個新的散列。當用戶在更新後啓動應用程序時,它會將其本地文件哈希與服務器上的哈希進行比較,以確定要下載的內容。

一個警告是安裝進度對話框。即使正在下載單個文件,它始終會顯示您應用程序的整個大小整個。這只是對話框的一個錯誤,所以不用擔心。您可以使用Fiddler等工具驗證它是否只下載所需的文件。

+0

需要考慮的另一件事是在下載這些ClickOnce文件時,在HTTP級別進行壓縮。 IIS和clickOnce啓動過程都支持通過在IIS中設置這些文件的運行時壓縮。 – 2010-02-26 23:09:01