[wix-users] Having trouble compiling wix project

Jon Earle earlej at hotmail.com
Thu Mar 10 08:37:29 PST 2016


Hey folks,
So, I have authored a wix project in VS2015 and have worked through most of the little issues arising from injecting a bunch of code (features and file/folder definitions) from a decompiled Installshield 2009 generated msi file.
What I have in my Product.wxs, is posted below (much snipped for brevity, but enough to show what I am doing).  I also have a Config.wxi where I defined a number of variables and where I also have:
<?if $(var.Platform) = x64 ?>        <?define Win64 = "yes" ?>
The Win64 variable, I refer to in my Product.wvs using "$(var.Win64)".  This works great for the first Directory under TARGETDIR (that being, Id="$(var.PlatformProgramFilesFolder)"), where the Components are each tagged with an attribute ' Win64="$(var.Win64)" '.
The problem is, var.Win64 seems to be lost, or starts misbehaving somehow, when the next Directory section (System64Folder) is hit.  As shown below, when I compile (within VS) I receive the error:
Error		ICE80: This 32BitComponent compDLL64 uses 64BitDirectory System64Folder
I don't understand why the Component would be marked as a 32bitComponent.  If I force the Win64 attribute to "yes", then I receive a different error:
Error		ICE80: This package contains 64 bit component 'compDLL64 ' but the Template Summary Property does not contain Intel64 or x64.
I have no Platform attribute on my Package, preferring to let VS set that for me per the project configuration (we will later need a 32bit installer).
What would be causing this?
The relevant bits of my Product.wxs:
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>    <?include $(sys.CURRENTDIR)\Config.wxi ?>
    <Product Name="$(var.ProductName)" ... >
    <Package Id='*' InstallerVersion='200' Compressed='yes'  />
    <Directory Id='TARGETDIR' Name='SourceDir'>        <Directory Id="$(var.PlatformProgramFilesFolder)">		<!-- stuff removed for brevity -->        </Directory>
        <Directory Id="System64Folder" SourceName="System64">            <Component Id="compDLL64" Guid="..." Win64="$(var.Win64)">                <File Id="compdll.dll" Name="CompDLL.dll" Source="$(var.WIN64BINARIES)\compdll.dll" />            </Component>        </Directory>
        <Directory Id="SystemFolder" SourceName="System32">            <Component Id="compDLL32" Guid="..." >                <File Id="compdll.dll2" Name="CompDLL.dll" Source="$(var.WIN32BINARIES)\compdll.dll" />            </Component>        </Directory>
        <Directory Id="ProgramMenuFolder" Name="Programs" />        <Directory Id="DesktopFolder" Name="Desktop" />    </Directory>

 		 	   		  


More information about the wix-users mailing list