views:

112

answers:

2

Hello,

Is there a way to reduce down the size of each ClickOnce updates? Each update included all the custom verdors dlls (eg. Telerik, NHibernate etc) and is there a way to only include with 1st initial install and not include in later updates?

I only want the latest updated application dlls and .exe in the ClickOnce update file so that client can download the updates via net very quickly.

Please share your recommendations or practices that you use in ClickOnce application. Thanks.

+1  A: 

If the DLLs do not change then ClickOnce will not re-download the DLLs, they will be copied from the previous installation on the client.

Darrel Miller
+2  A: 

Expanding on @Darrel Miller's answer. ClickOnce only downloads files that have changed. It generates a hash for each file. If anything about the file changes (file size, modified date, etc.) a new hash will be generated. When a user starts the application after an update, it compares their local file hashes to the ones on the server to determine what to download.

One caveat is the installation progress dialog. It always shows the entire size of you application, even if a single file is being downloaded. This is just a bug with the dialog, so no need to worry. You can verify it only downloads required files using a tool like Fiddler.

whatknott
One more thing to think about is compression at the HTTP level when those ClickOnce files are downloaded. IIS and the clickOnce launching process both support runtime compression of these files by simply setting that up in IIS.
Mike Schenk