I have a Deployment Project for my VS2008 C# application. When installing a new version of my application I want to make sure that files are updated with the files contained in the installer.
I want my installer to automatically remove any old version of the installed application. To do that I follow this procedure (also described here):
- Set RemovePreviousVersions to True
- Set DetectNewerInstalledVersion to
True - Increment the Version of the
installer - Choose Yes to change the ProductCode
For the assemblies I make sure the AssemblyVersion is set to a higher version:
[assembly: AssemblyVersion("1.0.*")]
Everything is working as intended except for my configuration files (xml files). Since I cannot find a way to “version” these files I cannot make sure that the files are updated if they have been modified on the target machine.
Is there any way to do this and how?
UPDATE: I have tried the approach/solution/workaround found here
- Include the file directly in a
project with the following
properties: “Build Action -> Content
file” and “Copy to Output Directory
-> Copy always” - Then add it to the deployment
project via Project
Output->Database->Content Files
Unfortunately it did not make any difference. The behavior is exactly the same.
If you’re willing to use Orca (there may be another way to do this method, but it’s the only one I know of) you may be able to set up RemoveFile directives.
See here for a typically light-weight MSDN document — could be a starting point.
http://msdn.microsoft.com/en-us/library/aa371201.aspx
Alternatively you could always create a very simple bootstrapper executable that simply calls “msiexec /i REINSTALLMODE=oums” (or whichever command-line switches are needed). Call it setup.exe if you like…
Better option long-term may be to switch to InstallShield or similar — VS2010 includes a light version of IS and I believe they’re moving away from vdproj projects.