views:

46

answers:

2

The application I'm working on is almost finished but we've come to a crossroads. At multiple times in the future, we'll have to update the application. We could easily just replace the application with the new version as well as the SQLite database, but at the same time we don't want to do that. Essentially, our application has three parts:

1.  Application
2.  Reports DLL (used by the Application)
3.  SQLite database.

Our updates to the application are going to be less frequent than that of the Reports DLL and SQLite database. We may need to add a report, meaning we need to add records to the database and replace the DLL. However, I'm not finding an install package in Visual Studio 2008 that allows you to add logic to it (not sure one even exists). I could probably create my own but if there's something 90% built by Microsoft, I'd rather use that. So my simple questions are:

  1. Can you add screens/logic to setup projects in Visual Studio 2008?
    1a. If you can, does anyone have a good tutorial or link that I may be able to use? Thanks.

The reason we don't want to replace the DB is because there may be information in there that they are working on.

+2  A: 

Yes you can normally add new dialogs to visual studio setups projects. Here's a tutorial from codeproject on how to do this.

As an advice you can migrate your setup packages to WIX, it's free, open source and a lot more flexible.

Adrian Faciu
Thank you very much for the link. That is very helpful.
XstreamINsanity
A: 

You can also handle the updates to the reports and database when the application starts.

So after an upgrade via the installer, the first time the application is run, it will update the database, add any new records etc.

Its often easier to add upgrade logic in the application rather than in the installer, and as it only needs to perform the upgrade once, it will not have a negative effect on your applications general startup time.

geoff
I thought about this at first, and while I can't think of it now, decided against it. I think it had something to do with the way the app is and how the customer expects it to run. They want the update done when they finish the installer, they don't want to have to wait until they open the application, because then it might take time for the app to load. Thanks for the answer though.
XstreamINsanity