On Fri, Mar 13, 2009 at 4:56 AM, Holmgren Mathias <mathias.holmg...@six.se>wrote:
> Good stuff, thanks again. > > We have an application DLL that is our code, which comes in three > different flavors (one for each Office-version we support). This is > necessary because it has to reference the corresponding Excel-assembly. > > If the user has some Excel version installed, the correct version of > this app interop assembly is installed as a part of the normal app MSI > install. > > However, to support req 7 that assembly would have to be installed > separately on demand after the application has been installed, and after > the user has installed Excel (just installing PIA afterwards would not > be enough to make app excel-interop go). Here's an idea off the top of my head. This may not be a nice user experience. - Write a custom action to set a property for the Office version. Call it "MSOfficeVersion". This custom action will run in immediate mode since it is only doing detection and not modifying system state. - Include all three DLLs in the MSI, each as its own component. - Put a condition element on each of the components based on the MSOfficeVersion. Only the relevant DLL will be installed. The application can verify each time it runs that the registered DLL is appropriate for the installed version of Office. If there is a mismatch, you could invoke an asynchronous shell call to msiexec to repair your product. This should happen pretty early in your initialization code so your app can be closed before the repair tries to update any open files. If your three DLLs are polymorphic except for their internal references, you might be better off simply installing all three DLLs and using a factory/repository pattern within the to instantiate the appropriate DLL. This would be invisible to the user and make a simpler MSI. - Don Benson - ------------------------------------------------------------------------------ Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users