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

I am using Visual Studio 2010, InstallShield LE for a solution containing about 10 projects.

I chose the main GUI project main output for the files part, installed in the program files subdirectory, is pretty standard.

I created an installer a few weeks ago and installed it on my test computer, everything works fine. Since then, I've made changes to every project in the solution. Today I have increased my build version and rebuilt my setup project to continue testing.

After installing the program files in the install directory, I noticed that one of my project collectors was still displaying the previous version, and the file date was more than a month old. Other assemblies in the directory show the current versions and the current modified date.

I tried to delete every bin and obj folder in my solution folder and in the installer project folder. I reinstalled but the problem persists.

I searched google but since the problem is odd good search phrase was elusive.

Obviously I need the most recent version of my assemblies to be included in the msi installation file.

Thanks for any help or suggestions!


source to share

4 answers

You need to do two things: extract the actual file into the MSI to see if the updated binary is in the MSI, and get a detailed installation log that looks for what the Windows Installer says about the component that contains the assembly in question. By the way, you have each assembly file as the key file of its own component, don't you? Windows Installer only checks for version updates for these paths.



Do you want to read:

Default file versions

Note. Make sure you are comparing AssemblyFileVersion. This is not an AssemblyVersion attribute, but an important AssemblyFileVersion attribute. The former is used by the GAC and Strong Name contracts, while the latter are used for the Windows Native FileVersion framework.



I had the same problem with VS Setup project. I would double check the assembly references in your solution referencing the project with the old DLL. You just have to look at the properties window to see the version being referenced. In my case, it would reference a DLL from a different bin folder of the project, not the project itself.

I know you have deleted all bin and obj folders, but it is probably worth a try.

If you find a link to an issue, just remove and re-add it and you should be good.



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

WiX has, for example, an UpgradeCode to help you control version checking by feature.



All Articles