installationwixwindows-installeruninstallationinstallaware

Uninstall error if original install DVD is not in drive


When trying to remove our application in Add/Remove Programs, the following error pops up, and the application fails to uninstall:

Error

'mFileBagIDE.dll' is not a valid short file name.

The curious thing is that you only get this error if the original installation DVD is not in the drive. If the DVD is in the drive, the uninstall works perfectly.

Here's the real kicker: we did not catch this bug until after our application was already widely deployed, and our clients' situations are such that it is likely many of them no longer have their original DVD. This means that the next version's installer (doing a windows installer major upgrade) will fail because it is unable to first remove the previous version.

So, my question is twofold:

Our current installer (the one that is causing problems) was generated using InstallAware. We're likely moving to WiX. But solutions in any platform (InstallAware, WiX, raw MSI tables) are appreciated!

UPDATE: I have the following row in both the InstallExecuteSequence and InstallUISequence tables in my MSI, which may very well be relevant, but I have no idea what the SRCDIREX property is, or where it is being set.

| Action        | Condition    |
|---------------|--------------|
| ResolveSource | NOT SRCDIREX |

Solution

  • Probably one of the actions (either standard or custom) that references the original MSI was not conditioned to run on installation only (for example, ResolveSource should be conditioned as "Not INSTALLED"). You might be able to workaround this with a patch (an MSP file) that changes the condition on the relevant action.