candle/light with the -ext WixDifxAppExtension add the 32 bit versions of DIFxApp.dll and DIFxAppA.dll to x64 packages. This results in the following installation error:
Action start 12:45:21: MsiProcessDrivers.
DIFXAPP: ENTER: ProcessDriverPackages()
DIFXAPP: ERROR - You need to use the 64-bit version of DIFXAPP.DLL to
install drivers on this machine.
Action ended 12:45:21: MsiProcessDrivers. Return value 3.
Action ended 12:45:21: INSTALL. Return value 3.
When I manually replace the DLLs with the amd64 versions from the WDK, the installation works.
This bug may be related to:
[ 1914217 ] Cannot add 64bit com+ component (3.0.3907.0)
Logged In: YES
user_id=2037847
Originator: NO
Patch to fix and import the correct dll's for x64 and ia64 (only one architecture is supported in a single install).
Logged In: YES
user_id=2037847
Originator: NO
I can't see anywhere to attach the patch, so here it is:
Index: ext/DifxAppExtension/wixext/DifxAppCompiler.cs
RCS file: /cvsroot/wix/wix/src/ext/DifxAppExtension/wixext/DifxAppCompiler.cs,v
retrieving revision 1.3
diff -u -r1.3 DifxAppCompiler.cs
--- ext/DifxAppExtension/wixext/DifxAppCompiler.cs 2 Aug 2006 11:24:41 -0000 1.3
+++ ext/DifxAppExtension/wixext/DifxAppCompiler.cs 8 Aug 2008 23:02:09 -0000
@@ -72,11 +72,13 @@
case "Component":
string componentId = contextValues[0];
string directoryId = contextValues[1];
bool componentWin64 = Boolean.Parse(contextValues[2]);
this.ParseDriverElement(element, componentId);
break;
default:
this.Core.UnexpectedElement(parentElement, element);
@@ -94,7 +96,7 @@
///
/// <param name="node">Element to parse.
/// <param name="componentId">Identifier for parent component.
private void ParseDriverElement(XmlNode node, string componentId, bool win64)
{
SourceLineNumberCollection sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
int attributes = 0;
@@ -166,7 +168,24 @@
row[2] = sequence;
}
this.Core.CreateWixSimpleReferenceRow(sourceLineNumbers, "CustomAction", "MsiProcessDrivers");
}
}
}
Index: ext/DifxAppExtension/wixlib/DIFxAppExtension.wixproj
===================================================================
RCS file: /cvsroot/wix/wix/src/ext/DifxAppExtension/wixlib/DIFxAppExtension.wixproj,v
retrieving revision 1.1
diff -u -r1.1 DIFxAppExtension.wixproj
--- ext/DifxAppExtension/wixlib/DIFxAppExtension.wixproj 30 May 2008 07:23:37 -0000 1.1
+++ ext/DifxAppExtension/wixlib/DIFxAppExtension.wixproj 8 Aug 2008 22:35:47 -0000
@@ -14,6 +14,11 @@
$(DefineConstants);
DIFxAppDll=$(ProjectDir)x86\DIFxApp.dll;
DIFxAppADll=$(ProjectDir)x86\DIFxAppA.dll;
<itemgroup>
Index: ext/DifxAppExtension/wixlib/DIFxAppExtension.wxs
===================================================================
RCS file: /cvsroot/wix/wix/src/ext/DifxAppExtension/wixlib/DIFxAppExtension.wxs,v
retrieving revision 1.1
diff -u -r1.1 DIFxAppExtension.wxs
--- ext/DifxAppExtension/wixlib/DIFxAppExtension.wxs 30 May 2008 07:23:37 -0000 1.1
+++ ext/DifxAppExtension/wixlib/DIFxAppExtension.wxs 11 Aug 2008 15:43:19 -0000
@@ -8,7 +8,7 @@
<custom action="MsiProcessDrivers" after="InstallFiles">
<custom action="MsiCleanupOnSuccess" after="InstallFinalize">
</custom></custom></itemgroup>
<binary id="user-content-DIFxApp.dll" sourcefile="$(var.DIFxAppDll)">
<binary id="user-content-DIFxAppA.dll" sourcefile="$(var.DIFxAppADll)"></binary></binary>
@@ -20,4 +20,44 @@
+</fragment>
+
+</binary>
+</customaction>
+
+
+</fragment>
+
+</binary>
+</customaction>
+
Index: wix/Compiler.cs
===================================================================
RCS file: /cvsroot/wix/wix/src/wix/Compiler.cs,v
retrieving revision 1.79
diff -u -r1.79 Compiler.cs
--- wix/Compiler.cs 1 Aug 2008 06:52:40 -0000 1.79
+++ wix/Compiler.cs 8 Aug 2008 22:17:04 -0000
@@ -2459,7 +2459,7 @@
}
else
{
}
}
}
To avoid having duplicate CA ids in the same .wixlib, I created three external .wixlibs, one for each platform.
This Tracker item was closed automatically by the system. It was
previously set to a Pending status, and the original submitter
did not respond within 15 days (the time period specified by
the administrator of this Tracker).