As I was adding the last touch to an old .NET program of mine I made last year, I thought about deployment of software in general and for deployment for this application in particular.
As it is, these are the options for a .NET developer:
- Distribute the executable and accompanying files raw, without installation program.
- Clickonce deployment.
- Distribute in a windows installer/setup program.
- Third party and custom deployment.
What buggs me is that Clickonce does not run on all sorts of browsers in windows. That is simply not acceptable for me.
Also, clickonce deployment may not work if you have the "wrong" hosting provider for your deployment site, which is the case for me.
So, what are the alternatives?
Sure, a plain windows installation is the best for any more complex kind of install.
With clickonce you get automatic updates with security for almost free.
What if you want something in between?
That is:
- Automatic updates with reasonable security.
- Possibility of more complex installation.
My solution
- Sign assemblies and installation files.
- Use the usual downloadable windows installer package as the initial installation medium.
- Use Sharp AutoUpdater to get automatic updates.
The feature missing from Sharp AutoUpdater is cryptographic verification of updates. However a small remedy for that is that I sign all my .NET programs.
Once that is fixed, I think I have found the perfect free way to deploy my .NET applications.
PS.
The program I was working on is a small program that can reboot, shutdown and logoff a user after a scheduled amount of time. The latest installation package is found here and you may use it freely and on your own risk.
DS.

Delicious
Digg
StumbleUpon
Facebook
Google
Yahoo