6
votes

We have a third party dll that was on version 1.0 in version 5.0 of our application.

In version 6.0 of our application, we upgraded the third party dll to version 2.0. But that caused problems for the application and we wanted to roll back.

So in version 6.1 of our application, we wanted to roll back to version 1.0 of the third party dll. But the Windows Installer sees that component as being a version greater than the one that is in the MSI and doesn't want to updated it.

How do I roll back the third party dll in the 6.1 version of our product?

1

1 Answers

2
votes

If your update needs to follow component rules, then you should look at having both Dlls to the update (with the same component guid) as transitive components, the unwanted one with a false condition and the other one with a true. They'd both be in the same location of course. The false value will cause the older one to be made absent. This should work ok with a patch.

If you're willing to do a major upgrade it's much simpler. Sequence RemoveExistingProducts early (such as after InstallInitialize) and all the old files will be uninstalled and then the new ones installed, and there are no file overwrite rules being used.