I'm wondering the best way to handle a setup project that can support some complex deployment scenarios. My product has the following items:
- Executable and dlls
- .config files
- SQL CE database
- map document and related items
- two different types of geographic database files
- prerequisites like .NET 4 & SQL CE runtime
I have some post-install steps that do things like unzip clean versions of the SQL and geographic databases.
Assume that the initial deployment and install is a full installation. I want to be able to do patches or updates of one or a combination of these items without necessarily overwriting the users files with a clean install. I hope to do these via the web-based updates. Some examples:
- I want to distribute bug fixes or new features in the executable and dlls without executing the post-install steps that unzip databases
- I want to possibly run SQL to update the database without changing any other items
- I want to possibly replace, add, or update the map document and its related files
- etc.
- Or possibly any combination of these
Any advice on how to proceed would be appreciated.