When using InstallShield LE, the msi contains an outdated version of one assembly, but current versions of others

StackOverflow https://stackoverflow.com//questions/9675367

Question

I'm using Visual Studio 2010, InstallShield LE on a solution with about 10 total projects.

I've selected the main GUI's primary project output for the 'files' portion, installed to a subdirectory of Program Files, pretty standard.

I built the installer a few weeks ago and installed it on my test machine, everything was working fine. Since then, I've made changes to each project in the solution. Today, I incremented my assembly version and rebuilt my setup project to continue testing.

After installation, in the program files installation directory, I noticed that one of my project's assemblies still lists the previous version, 1.0.0.0, and the file date is over a month old. The other assemblies in the directory show the current versions and current modified date.

I've tried deleting every bin and obj folder in my solution directory and the installer project folder as well. I reinstalled but the problem remains.

I searched google, but as the problem is odd, a good search phrase has been elusive.

Obviously, I need the most current version of my assemblies to be included in the installer msi.

Thanks for any help or suggestions!

Was it helpful?

Solution

You need to do two things: extract the actual file in the MSI to know whether the updated binary is there in the MSI, and get a verbose log of the install looking for what Windows Installer says about the component that contains the assembly in question. Btw, you have each assembly file as the key file of its own component, don't you? Windows Installer only checks for version updates for they paths.

OTHER TIPS

You'll want to read:

Default File Versioning

Note: Make sure you are comparing AssemblyFileVersion. It's not the AssemblyVersion attribute that is important rather the AssemblyFileVersion attribute. The former is used by the GAC and Strong Name contracts while the later maps to the Windows Native FileVersion structure.

I've had the same problem with the VS Setup Project before. I would double-check the assembly references in your solution that reference the project with the old DLL. You should just be able to look at the Properties window to see the version it's referencing. In my case, it would reference the DLL from another project's bin folder, rather than the project itself.

I know you deleted all your bin and obj folders, but it's probably worth a try.

If you find the problem reference, just remove and re-add it and you should be good.

Dump InstallShield and go with WiX .. you'll never look back.

WiX has e.g. UpgradeCode to help you control version checks on features.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top