Menu

#1197 WixDifxAppExtension adds wrong DIFxApp.dll to x64 package

v3.0
closed
nobody
2012-09-15
2008-05-12
Demyn
No

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)

Discussion

  • Cody Cutrer

    Cody Cutrer - 2008-08-14

    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).

     
  • Cody Cutrer

    Cody Cutrer - 2008-08-14

    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]);

                   switch (element.LocalName)
                   {
                       case "Driver":
      
    • this.ParseDriverElement(element, componentId);

    • this.ParseDriverElement(element, componentId, componentWin64);
      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)
    • 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");

    • if (win64)
    • {
    • if (this.Core.CurrentPlatform == Platform.IA64)
    • {
    • // Ensure MsiProcessDrivers (ia64) is referenced, to handle this ia64 component member
    • this.Core.CreateWixSimpleReferenceRow(sourceLineNumbers, "CustomAction", "MsiProcessDrivers_ia64");
    • }
    • else
    • {
    • // Ensure MsiProcessDrivers (x64) is referenced, to handle this 64-bit, non-ia64 component member
    • this.Core.CreateWixSimpleReferenceRow(sourceLineNumbers, "CustomAction", "MsiProcessDrivers_x64");
    • }
    • }
    • else
    • {
    • // Ensure MsiProcessDrivers (x86) is referenced, to handle this x86 component member
    • 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;
    • DIFxApp_x64Dll=$(ProjectDir)x64\DIFxApp.dll;
    • DIFxAppA_x64Dll=$(ProjectDir)x64\DIFxAppA.dll;
    • DIFxApp_iaDll=$(ProjectDir)ia64\DIFxApp.dll;
    • DIFxAppA_iaDll=$(ProjectDir)ia64\DIFxAppA.dll;
    • BuildIA64=$(BuildIA64)


      <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>
    
    • <fragment id="user-content-DIFxAppCustomActions_x64">
      +</fragment>
    • <installexecutesequence></installexecutesequence>
    • <custom action="MsiProcessDrivers_x64" after="InstallFiles"></custom>
    • <custom action="MsiCleanupOnSuccess_x64" after="InstallFinalize"></custom>

    • +
    • <binary id="user-content-DIFxApp_x64.dll" sourcefile="$(var.DIFxApp_x64Dll)"></binary>
    • <binary id="user-content-DIFxAppA_x64.dll" sourcefile="$(var.DIFxAppA_x64Dll)">
      +</binary>
    • <customaction id="user-content-MsiProcessDrivers_x64" binarykey="DIFxApp_x64.dll" dllentry="ProcessDriverPackages" suppressmodularization="yes" execute="immediate"></customaction>
    • <customaction id="user-content-MsiInstallDrivers" binarykey="DIFxAppA_x64.dll" dllentry="InstallDriverPackages" suppressmodularization="yes" execute="deferred" impersonate="no"></customaction>
    • <customaction id="user-content-MsiUninstallDrivers" binarykey="DIFxAppA_x64.dll" dllentry="UninstallDriverPackages" suppressmodularization="yes" execute="deferred" impersonate="no"></customaction>
    • <customaction id="user-content-MsiRollbackInstall" binarykey="DIFxAppA_x64.dll" dllentry="RollbackInstall" suppressmodularization="yes" execute="rollback" impersonate="no"></customaction>
    • <customaction id="user-content-MsiCleanupOnSuccess_x64" binarykey="DIFxApp_x64.dll" dllentry="CleanupOnSuccess" suppressmodularization="yes" execute="immediate">
      +</customaction>

    • +

    • +
    • <fragment id="user-content-DIFxAppCustomActions_ia64">
      +</fragment>
    • <installexecutesequence></installexecutesequence>
    • <custom action="MsiProcessDrivers_ia64" after="InstallFiles"></custom>
    • <custom action="MsiCleanupOnSuccess_ia64" after="InstallFinalize"></custom>

    • +
    • <binary id="user-content-DIFxApp_ia64.dll" sourcefile="$(var.DIFxApp_ia64Dll)"></binary>
    • <binary id="user-content-DIFxAppA_ia64.dll" sourcefile="$(var.DIFxAppA_ia64Dll)">
      +</binary>
    • <customaction id="user-content-MsiProcessDrivers_ia64" binarykey="DIFxApp_ia64.dll" dllentry="ProcessDriverPackages" suppressmodularization="yes" execute="immediate"></customaction>
    • <customaction id="user-content-MsiInstallDrivers" binarykey="DIFxAppA_ia64.dll" dllentry="InstallDriverPackages" suppressmodularization="yes" execute="deferred" impersonate="no"></customaction>
    • <customaction id="user-content-MsiUninstallDrivers" binarykey="DIFxAppA_ia64.dll" dllentry="UninstallDriverPackages" suppressmodularization="yes" execute="deferred" impersonate="no"></customaction>
    • <customaction id="user-content-MsiRollbackInstall" binarykey="DIFxAppA_ia64.dll" dllentry="RollbackInstall" suppressmodularization="yes" execute="rollback" impersonate="no"></customaction>
    • <customaction id="user-content-MsiCleanupOnSuccess_ia64" binarykey="DIFxApp_ia64.dll" dllentry="CleanupOnSuccess" suppressmodularization="yes" execute="immediate">
      +</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
      {
    • this.core.ParseExtensionElement(sourceLineNumbers, (XmlElement)node, (XmlElement)child, id, directoryId);
    • this.core.ParseExtensionElement(sourceLineNumbers, (XmlElement)node, (XmlElement)child, id, directoryId, win64.ToString());
      }
      }
      }
     
  • Bob Arnson

    Bob Arnson - 2008-09-26

    To avoid having duplicate CA ids in the same .wixlib, I created three external .wixlibs, one for each platform.

     
  • SourceForge Robot

    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).

     
MongoDB Logo MongoDB