I'm experiencing some weirdness related to an MSI installation upgrade, perhaps someone out there can help me:
I have two MSIs, an original and an upgrade:
- MSI version 1.0
- Contains a .NET assembly, foo.dll, to be installed to the GAC
- foo.dll is of type "Assembly" (not "Output") within the MSI file system gui.
- MSI version 2.0
- Also contains foo.dll (same version), plus a bunch additional assemblies.
- I would like MSI 2.0 to totally replace 1.0, so I set RemovePerviousVersion to False.
Now the two installation scenarios:
I run MSI 1.0. Foo.dll is installed to the GAC properly. I then run MSI 2.0 and Foo.dll seems to be removed from the GAC, but the additional assemblies are there. I have no idea way. However, if I go to Add/Remove programs and click "Repair," Foo.dll gets put in.
MSI 1.0 is never installed and I run MSI 2.0. Foo.dll (and the additional assemblies) is there, as expected.
Any ideas why the foo.dll gets removed during the upgrade?? Thanks in advance!
-Ken
UPDATE After some refreshing/rebuilding, it seems to work now. However, now it does not remove foo.dll when I uninstall the MSI, even though its property "Permanent" is set to false. Not as big of a problem, but it would be nice to know what was going on.