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

Reply via email to