I noticed a few annoyances in the C# packager.
In FormAbout, linkLabel1_LinkClicked, if you change the hypertext to point to "yourcompany.com", you must also change this:
string text2LookFor = "yourcompany.com"
if you don't, the click area will start at -1 because it's assumed that the "text to look for" is always found.
... then at run time you get a very weird error in packagemain.cs, showmsg:
Console.Write(message + "\\r\\n");
because the error is in the coding (string text2lookfor is never found), m_ConsoleMode is not properly initialized, the application thinks its running in console mode, and it throws an IOException.
When you first open PackageExecutor.cs in VS, you'll receive an error stating that the line endings are inconsistent, and VS prompts you to convert all line endings to CR LF.
In FormSelectDatabase, textBoxInformation, the Text property reads:
"This executable will upgrade an existing database or create a new database. Please choose the server and database you would like to upgrade or create."
Changing it in the text box's properties does little good however, unless you deal with this:
this.textBoxInformation.Text = "This executable will upgrade an existing database. Please choose the server and database you would like to upgrade.";
this.textBoxInformation.Text = "This executable will create a new database. Please choose the server and database you would like to create.";
(You never see the text that displays from the textBox's properties, in other words, because it's always overwritten by one or the other of these nearly identical variants).
Not strictly C# issues:
if you include users in your package and you choose to "upgrade an existing database", the package will error because the users already exist.
the database settings are not available in the packager: specifically we need to be able to "SET trustworthy ON" during database creation.