views:

73

answers:

2

I'm responsible for an in-house application that is deployed as a ClickOnce application.

We run into issues reasonably frequently when a developer runs the tool after a a several new versions have been published (due to new features, bug fixes or whatever) and the output of the tool no longer conforms to what the developer is expecting. This means extra time is required of the developer to make changes to their code to accomodate the differences in the versions of the tool.

I have noticed that Redgate's .NET Reflector tool doesn't need an installer - it exists as a .exe file, some dlls and a smattering of other files.

If our tool could be deployed like this, it would be possible to retain multiple versions.

How do I create an installer for a .NET winforms application so it can be run in this way?

+1  A: 

I am assuming that you want an application that can be installed once and can then receive updates automatically and update itself. A commercial package such as "wyUpdate" can do this:

http://wyday.com/wyupdate/

It has the added advantage that it can perform binary patching, so only deltas are downloaded to update installed applications, rather than whole assemblies. This can be quite a bonus depending on your circumstances.

Additionally, you could use ILMerge to package all your assemblies up into a single "exe" file. NuGenUnify is a nice GUI wrapper over ILMerge (which is a command-line tool). Packing all your assemblies into a single "exe" could mean you could also avoid having an installer at all.

chibacity
Thanks for the answer, although, no, this isn't really what I'm looking for. I'd like the ability to have multiple versions of the same application running side-by-side.
Paul Suart
ILMerge on the other hand... that looks useful. Thanks.
Paul Suart
@Paul Please see detail re. ILMerge.
chibacity
I ended up using this: http://madebits.com/netz/download.php - ILMerge was giving me all kinds of headaches! Thanks.
Paul Suart
+2  A: 

You don't have to do anything special to deploy your app as a set of exe + dll files. Just copy the files from your build directory to the client workstations (ok, that's oversimplifying, but still...).

Chris
Good point! Thanks.
Paul Suart