Hello,

Is it possible to conditionally install drivers with DIFxApp extension?

If I put a Condition element inside the Component or Feature that 
contains the driver files, it doesn't seem to have any effect to the 
custom actions that actually install the drivers. For example, one of 
the custom actions from DlFxApp that deals with driver installs is 
MsiProcessDrivers. Setting a Condition to the Component containing the 
<difx:Driver/> tag does not change the custom action's condition in 
InstallExecuteSequence.

<DirectoryRef Id="DriversFolder">
     <!-- 32 bit usb ccid generic driver -->
     <Component Id="usbccid" Guid="MY GUID">
         <Condition>NOT VersionNT64</Condition>
         <File Source="$(var.UsbccidDir)\usbccid.sys" KeyPath="yes" />
         <File Source="$(var.UsbccidDir)\usbccid.inf" />
         <File Source="$(var.UsbccidDir)\usbccid.cat" />
         <difx:Driver DeleteFiles="yes" PlugAndPlayPrompt="no" />
     </Component>
</DirectoryRef>


I also tried to change the custom action directly (that would be an ugly 
hack of course), but this doesn't work either:
<InstallExecuteSequence>
     <Custom Action="MsiProcessDrivers" After="UninstallCertificates">
         NOT VersionNT64
     </Custom>
</InstallExecuteSequence>

The error I got was:

> C:\delivery\Dev\wix30_public\src\ext\DifxAppExtension\wixlib\DIFxAppExtension.wxs(8)
>  : error LGHT017
> 0 : The InstallExecuteSequence table contains an action 'MsiProcessDrivers' 
> that is declared in two
> different locations.  Please remove one of the actions or set the 
> Overridable='yes' attribute on one
>  of their elements.


The reason why I needed to conditionally install the drivers was that on 
a 64 bit Windows the 32 bit MSI with 32 bit drivers fails to install. It 
would make sense to allow users to install the 32 bit MSI on a 64 bit 
platform, but currently install fails because of the drivers. Given that 
the 64 bit drivers are also available from Windows Update, I'd like to 
just install the rest of the MSI. However, I am unable to find a clean 
way to NOT install the drivers on a 64 bit platform. Currently the 
install fails with the following error:

DIFXAPP: ERROR - You need to use the 64-bit version of DIFXAPP.DLL to 
install drivers on this machine.

Any suggestions how to not install the drivers based on a condition?

-- 
Kalev

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to