Question

Recently we came across an issue to support side by side installation.

We have a customer that installed version 1.0.0.0
Now we started publishing version 2.0.0.0.

This customer wants to install version 2.0.0.0 next to version 1.0.0.0 on the same server(side by side) like microsoft and other companies do it with thier products.

However our installation is not simple. it includes Services, dll/COM Registration, writing to the registry, creating virtual directories and application pool, GUIDs etc.

The problem is I dont even know where to begin and how to do it most efficiently.

Any help will be appreciated Thanks

Était-ce utile?

La solution

From the installer perspective, you just have to break the relation. Either this means changing the ProductCode and UpgradeCode, or changing the ProductCode and removing the Major Upgrade items that would cause the earlier version to be removed. You should also update component IDs according to component rules.

However if your registration causes problems with side by side functionality of your product, the installation cannot fix this. You can try some combination of these ideas to make things more feasible, some of which only work well before the first is distributed. I'm not sure how best to address a shared virtual directory and/or application pool, however.

  • factor out the common parts into shared files, and be careful about backwards compatibility
  • change all your COM GUIDs, service identifiers, and other such system-wide item such that neither version cross-references
  • use OS functionality like Reg-Free COM to avoid system-wide registration where possible
  • use Application Virtualization technology like App-V to hide your applications from each other, if the app's needs and your customers allow for it

In then end this will probably be a lot of work within your application, so you will have to decide whether it's worth supporting this scenario.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top