I've read a fair number of questions on how to upgrade a database for developer and such, and I'm leaning towards using migratordotnet or something similar, however it seems the the upgrades need to be run with something like MSBuild or NAnt. These are not things I should expect an end-user to have installed.
Ideally the process should be the user installs the new version of the app, launches it and it takes care of everything behind the scene. Depending on how long the process takes I may or may not show a progress bar, and then it's done, the use the app normally blissfully unaware that there's such as thing as sql, msbuild, relational database, or anything even remotely technical sounding.
Other misc info:
SQLCE that's xcopy installed.
Single user database that most likely shouldn't be too large.
Releases will be fairly frequent with the program evolving through user input on requested features.
Initial release isn't done yet, so don't need to worry about any current data, just need a painless process for initial and subsequent releases (for the end-user, preferably for me as well!).
Using LINQ to SQL as ORM. (Do I
upgrade the database first then
run SQLMetal to regenerate the
classes?)
Doing TDD (for the first time) and wondering how to automate testing upgrades.
Visual C# Express so no VS plugins.
Edit:
I guess MSBuild comes with the .NET Framework and not just VS, so I guess this is a non-issue and I can just use migratordotnet and just shell out to msbuild. If needed I could probably redirect console output and do some naive string parsing to get progress info, but I'll resort to that if it looks like it's taking long enough to warrant displaying actual progress instead of just a marquee progress bar.