You are wrong about the updating capabilities and methodology of ClickOnce.
With ClickOnce, you deploy your updated versions to the same url as the
original, and when the user runs the application again, it checks and picks
up the latest version. You deploy the whole thing every time to your
webserver. When installing, ClickOnce checks the versions of any and all
included files, and only copies over the new ones that it needs.
You end up with multiple versions on your web server, but the most current
one is myapp.application, and that tells which version to actually install.
This means you can easily go back a version by copying one of the versioned
application files (like myapp.application_10_1_1_1, named that way bye
default), and you can remove old versions as you deploy more of them.
You can make the updates optional or required. You can make 6 updates in a
row optional, and then make the next one required. It's very flexible. If
you make them optional, it will come up and ask the user if he wants to
install it, or skip this version.
If you have problems, and you're putting out optional versions, the user can
even revert back one version using "add/remove programs".
ClickOnce by default deploys the files with the file extension "deploy", and
knows what to do with them when the user runs the deployment, which removes
the problem many web servers have with allowing files ending in dll, exe,
etc.
I recommend the OP try it out. It has been grossly misrepresented here. For
more info about ClickOnce, check out Brian Noyes' book about it -- it is
hugely useful.
RobinS.
GoldMail, Inc.
------------------------------------
"Nicholas Paldino [.NET/C# MVP]" <(E-Mail Removed)> wrote in
message news:(E-Mail Removed)...
> Jim,
>
> I don't think ClickOnce (as mentioned in other threads) is a good idea
> here. The reason for that is that you mentioned you are going to
> distribute a free app over the web.
>
> Because of this, you might run into issues in trying to public a
> ClickOnce app on your hosting server (if you don't have a dedicated
> server, you might have restrictions preventing you from publishing it).
>
> Also, the model for upgrading the app becomes cumbersome. If you have
> multiple versions, and you only want to distribute the changed portions,
> you will have to make a patch for every upgrade of every previous version
> to the current version.
>
> In other words, if you released version 1.1, 1.2 and 1.3, and someone
> installs 1.1, and wants to install version 1.3, you have to provide a
> specific patch from 1.1 to 1.3, as well as 1.2 to 1.3.
>
> Expecting the user to go through the patches manually will create a
> very ugly user experience, and deter a number of people (it would deter
> me).
>
> Because of that, for the audience you are targeting, it would probably
> be a better user experience if you created an install package which will
> remove previous versions of your program, and then do a full install of
> the current version the installer represents.
>
>
> --
> - Nicholas Paldino [.NET/C# MVP]
> - (E-Mail Removed)
>
> "jim" <(E-Mail Removed)> wrote in message
> news:YMWnj.62733$(E-Mail Removed)...
>> Let's just say that I am foolish enough to code and distribute a free app
>> to the general public over the web.
>>
>> What is the best (cheapest, smallest bandwidth, easiest to code) way to
>> publish updates to my .Net application?
>>
>> I'd like to save bandwidth by only updating the changed portions if
>> possible.
>>
>> Thanks!
>>
>> jim
>>
>
>