This patch fixes bug [ 1962701 ] and will include the correct difxapp.dll and difxappa.dll according to the architecture of the Component that contains the <difx:Driver> tag. The patch is limited to just the difx extension, except for the compiler for the Component element passes the win64 flag in the context params array to extension element parsers, similar to how specific sub-elements of Component pass the flag to extension elements under them (I based it off the code in the util extension).
DifX does not support installing drivers from multiple architectures in the same package, since in MsiProcessDrivers, DifX adds calls to deferred custom actions to the install sequence under constant names (MsiInstallDrivers, MsiUninstallDrivers, and MsiRollbackInstall). So, dbldrv.wxs demonstrates having a difx:Driver under both a Win32 component and a Win64 component in the same x64 package, and light will disallow the linking due to multiple custom actions with the same name (the error message could be more helpful, but I didn't know how to detect and throw an error from within the Difx Compiler to give earlier and clearer warning). To compile the example you can create dummy empty files driver.sys, x64_driver.sys, and driver.inf. Because of the way the component arch detection works, it would allow all 32-bit drivers to be installed in a 64-bit package, instead of forcing the driver component arch to match the package arch. I'm not sure if it could be valid to install a 32-bit driver on a 64-bit arch, but I didn't want to unnecessarily disallow old behavior that might be valid just because I didn't think it should be valid. Finally, I haven't signed my copyright assignment agreement yet, but have already sent mail to [EMAIL PROTECTED], and am just waiting for a response. Cody Cutrer
difx64.patch
Description: difx64.patch
dbldrv.wxs
Description: dbldrv.wxs
------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________ WiX-devs mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wix-devs
