Simply make sure that this plugin's component now points to the location you now wish it would install into, and supply the new component definition to the customers MSIs. When the products are upgraded, the old components will be removed. Unless you control the installation sequence of the customer's MSIs, you will probably want to change the CLSID of your plugin when you move its installation directory (that way, if some product is removed after your upgrade, you don't wipe out part of the registration). You should also change your component's GUID to one you define and maintain perpetually (the best one is "*" if light.exe accepts it because that will ensure that the guid is maintained as long as the keypath is the same, which is exactly the behavior you need to help you adhere to the component rules).
What you don't say is if you build your customer's MSIs or if they build them themselves. If all the MSIs are built by you or if you know they are all built using WiX v3.x you can supply a WIXLIB that they simply include with their build. -----Original Message----- From: little.forest [mailto:little.for...@ymail.com] Sent: Tuesday, July 06, 2010 4:40 PM To: wix-users@lists.sourceforge.net Subject: [WiX-users] How to install a component to make it work for multiple builds We're going to implement a plugin for Microsoft Outlook. We'll include this plugin in our MSI installer. First of all, we OEM our software. That means, for example, the customerA has their own installer which may include 15 features; the customerB has their own installer which may include 20 features. If we treat this Outlook plugin as one of the existing features, life will be easier. We just need to add the plugin, give it a GUID, and the plugin will be installed in the same folder as any other components. But now, the requirement for this Outlook plugin is, to make this plugin serve for multiple builds. It means, all customer builds share one plugin. If the new version of the build is installed(no matter customerA, or customerB, or customerC), then the build should update this shared plugin version if the new build has the most updated version. Right now, the customer's build is installed in the folder like "Program Files\CustomerA". I can imagine, this plugin has to be installed in a common folder such as "Program Files\Common\My Company\Outlook Plugin". How can I do that? As you know, customerA and customerB installers have different package ID. How these different installers can control one component? By the way, we support "Major Upgrade" in our installer for all customers. Thanks. ---------------------------------------------------------------------------- -- This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users