We have a Deployment project which uses a Custom Action to call our own Installer class in an executable.
We pass some values from the User Interface of the Deployment project to the executable via the Custom Action.
The User Interface includes a wizard step with text boxes, into which, amongst others is a textbox in which the user can change our default database server name "(local)" to anything they like, such as "myserver".
When we run the installer, we enter some new values into the user interface (e.g. "myserver"), and when the Installer class gets executed in our executable, the value "myserver" gets passed across correctly in the Context.Parameters["dbserv
ername"] to our Installer class.
So far, everything works great.
The problem comes if we then go and change something that was installed, such as delete a folder which our deployment MSI created and populated with files. If we do this, and then run our main program from one of the shortcuts created by the deployment, we see a "please wait while Windows configures..." progress dialog, and the Installer class in our executable gets called again.
The problem is, when this happens, the values passed to the Installer class, such as through Context.Parameters["dbserv
ername"], are the default values (i.e. "(local)"), instead of "myserver" as we want.
Why does it do this, and how can we make it pass the new values, as entered into the setup wizard?