This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: Cannot Overwrite Files
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Sep 30, 2010
05:34 PM
Cannot Overwrite Files
I am using InstallShield 2010. I have a Basic MSI project with one feature and lots of components. All the files in all the components have the "Always Overwrite" property. However, when I try to reinstall over an existing installation, the files do not get overwritten.
I have played with adding a command-line option of REINSTALLMODE=vomusa (the default is vomus), but that did not make a difference.
I do nightly builds, so the contents of the installer for this product potentially change often: There could be new files, existing files could change, or files might be removed.
I have read a little about Upgrades, and what I am doing should classify as a minor upgrade....
Any help appreciated!
I have played with adding a command-line option of REINSTALLMODE=vomusa (the default is vomus), but that did not make a difference.
I do nightly builds, so the contents of the installer for this product potentially change often: There could be new files, existing files could change, or files might be removed.
I have read a little about Upgrades, and what I am doing should classify as a minor upgrade....
Any help appreciated!
(10) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 01, 2010
01:02 AM
Just a few points that might help you:
- I would not use the "always overwrite" flag. I would rather make sure that the file version attribute of every assembly or binary is set properly and incremented every time something has been changed in the corresponding source code. This would then allow you take advantage of the versioning rules of Windows Installer.
The only situation where I had to use this "always overwrite" flag was for 3rd party assemblies that did not follow strict versioning rules. - As for the REINSTALLMODE property, it can be used in some situations indeed, but you cannot specify "a" and "o" at the same time. If you want to force all files, all registry entries and all shortcuts to get reinstalled, you need to specify "vamus". You should also specify which features are to be reinstalled by using the REINSTALL property (in your case REINSTALL=ALL).
Also the setup executable might well set the REINSTALLMODE property for you. - If you want to do a minor upgrade, don't forget to increment the product version of your MSI package, and remember it only has 3 fields (e.g. v 1.2.3).
- Allowing to perform a minor upgrade of your product means your MSI package must follow some rules. Use the Upgrade Validation Wizard to make sure your MSI package does not infringe these rules.
- Avoid using dynamic file linking. That "feature" can make your minor upgrade fail, as if a dynamically linked file gets removed from your build (which infringe minor upgrade rules), you won't necessarily notice it as IS will still be able to build your MSI package.
- Alternatively, try to create an MSI logfile of your minor upgrade. It will show you why each file does not get updated.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 01, 2010
01:34 AM
Also note that only files with filled version field can be overwritten.
Just set version for all files like "1.0.0.0"
Just set version for all files like "1.0.0.0"
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 01, 2010
08:42 AM
Reureu, Rouslan - thank you both for the helpful information.
Now to decide what to do. We do not follow *any* version rules, and I am not sure how that could be implemented in my environment (multiple developers modifying many files in many projects all the time).
The good thing is in this particular case, I control all the source and input for the product, and so can implement a version scheme.
Thanks again for the help.
Now to decide what to do. We do not follow *any* version rules, and I am not sure how that could be implemented in my environment (multiple developers modifying many files in many projects all the time).
The good thing is in this particular case, I control all the source and input for the product, and so can implement a version scheme.
Thanks again for the help.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 01, 2010
10:13 AM
...is one of the .exe files in the existing installation has file version 10.9.11.0, but the version of the file I am trying to overwrite it with (in the installer) is 10.9.22.0.
Why did that file not get overwritten when the "Always Overwrite" property was set, and REINSTALL MODE was "vomus" with REINSTALL=ALL?
It turns out I was being strict with file versions on at least that file....
Why did that file not get overwritten when the "Always Overwrite" property was set, and REINSTALL MODE was "vomus" with REINSTALL=ALL?
It turns out I was being strict with file versions on at least that file....
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 03, 2010
04:23 AM
MBLance wrote:
...is one of the .exe files in the existing installation has file version 10.9.11.0, but the version of the file I am trying to overwrite it with (in the installer) is 10.9.22.0.
It could be a bug of Windows Installer. WI sometimes ignore two last positions of version.
Try to change it to 10.922.0.0
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 04, 2010
10:05 AM
Rouslan wrote:
It could be a bug of Windows Installer. WI sometimes ignore two last positions of version.
Try to change it to 10.922.0.0
Good idea, but I started trying with version 10.10.0.0, and it would not update that either. I manually uninstalled, then installed 10.6.0.0, and it still would not update when installing 10.9 or 10.10.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 05, 2010
02:06 PM
Note that if no files seem to be updated with a small update or minor upgrade, this could be due to component rules being broken (possibly through the use of dynamic file links as mentioned). Logging the installation in such a case will result in SELMGR information in the log indicating feature/component mappings have been broken due to components being removed (which will also result in your features set to an Install state of Advertised in the log). You can also pass MSIENFORCEUPGRADECOMPONENTRULES=1 on the command line to trigger a runtime error if component rules have been broken.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 07, 2010
01:38 AM
I don't think it is a bug in Windows Installer.
Have you tried to validate your minor upgrade with the Upgrade Validation Wizard? I would definitely recommend you to give it a go:
Build->Validate->Upgrade Validation Wizard
It should show you why your upgrade is not working.
Have you tried to validate your minor upgrade with the Upgrade Validation Wizard? I would definitely recommend you to give it a go:
Build->Validate->Upgrade Validation Wizard
It should show you why your upgrade is not working.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 07, 2010
01:49 PM
Those look like more trouble than they are worth!
I can try the validation tomorrow.
In general, though, this situation is somewhat confusing. I only have a handful of files in the installer, and they change with some frequency. The version numbers of some of them change with each build (some of the dll version numbers are not strictly managed). Installation of an exe with version "x.y" does not get overwritten by an installer carrying the updated exe with version "x + n.y + m" That seems like a bug.
I can try the validation tomorrow.
In general, though, this situation is somewhat confusing. I only have a handful of files in the installer, and they change with some frequency. The version numbers of some of them change with each build (some of the dll version numbers are not strictly managed). Installation of an exe with version "x.y" does not get overwritten by an installer carrying the updated exe with version "x + n.y + m" That seems like a bug.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 08, 2010
12:08 AM
Go ahead with the validation. You might be surprised with the results.
If that doesn't help, try the minor upgrade with a dummy project that installs only one versioned file (either EXE or DLL).
If a minor upgrade of this dummy product doesn't work, post the Installshield Project and all the required files in this thread.
If that doesn't help, try the minor upgrade with a dummy project that installs only one versioned file (either EXE or DLL).
If a minor upgrade of this dummy product doesn't work, post the Installshield Project and all the required files in this thread.