The SxS Merge Modules from MSFT that I have used tend to have their own fully-intact directory structures and don't use any of the packages directory tree for anything.
If you look in the Microsoft_VC90_CRT_x86_x64.msm file's Directory table, you will see that the only child directory of the required TARGETDIR directory is WindowsFolder.30729.4148.Microsoft_VC90_CRT_x64.QFE.DD7E30AD_4555_3131_8F48_ 1849E9DBC229 (in the version of that file on my hard drive), which will (when added to my MSI via Mergemod.dll which light.exe uses) be set to use the predefined variable "WindowsFolder". All other directories in the tree descend from that WindowsFolder location. Searching the entire MSM file for "TARGETDIR" further reveals that the only place that directory is referenced is the Directory table. Thus, this MSM doesn't make any use of the directory you pass to it via the Merge element's parent. What happens, though, with EVERY merge module, is that the merge module's TARGETDIR directory, which must be the "root" of its directory tree, is the directory you supply as the parent of the Merge element. As a result, the payload_ul.30729.4148.Microsoft_VC90_CRT_x64.QFE.DD7E30AD_4555_3131_8F48_184 9E9DBC229 directory will look to ICE80 as something akin to "C:\Program Files\X\Y\bin\Windows\winsxs\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.3 0729.4148_none_08e3747fa83e48bc", which is clearly a 64-bit directory, when what the real result will be is "C:\Windows\winsxs\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4148_ none_08e3747fa83e48bc", which 32-bit code can see without any redirections going on, allowing the use of 32-bit components. See this page for more details about Merge Module directory authoring: http://msdn.microsoft.com/en-us/library/aa367787(VS.85).aspx The "workaround" is to place the MSFT VisualStudio runtime library Merge Modules under your MSI's "TARGETDIR" directory instead of somewhere under its installation directory. Thus: <DirectoryRef Id="TARGETDIR"> <Merge Id="VC90CRTModule" Language="1033" SourceFile="$(env.CommonProgramFiles)\Merge Modules\Microsoft_VC90_CRT_x86_x64.msm" DiskId='1' /> <Merge Id="POLICY90VC90CRTModule" Language="1033" SourceFile="$(env.CommonProgramFiles)\Merge Modules\policy_9_0_Microsoft_VC90_CRT_x86_x64.msm" DiskId='1' /> <Merge Id="VC90MFCModule" Language="1033" SourceFile="$(env.CommonProgramFiles)\Merge Modules\Microsoft_VC90_MFC_x86_x64.msm" DiskId='1' /> <Merge Id="POLICY90VC90MFCModule" Language="1033" SourceFile="$(env.CommonProgramFiles)\Merge Modules\policy_9_0_Microsoft_VC90_MFC_x86_x64.msm" DiskId='1' /> </DirectoryRef> Note that you have to look at each and every MSM to see what directory it should be placed under, and every time you accept an updated MSM you should re-examine its directory usages to ensure that no directories in the MSM really depend on the location of TARGETDIR. -----Original Message----- From: tsk [mailto:thomas.kr...@mecadtron.de] Sent: Monday, October 19, 2009 7:26 AM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] LGHT0204 : ICE80 error Blair-2 (via Nabble) schrieb: > Two questions: > 1) What is the ICE80 message? > 2) What is the commandline to candle? > 1) (wrapped...) light.exe : error LGHT0204 : ICE80: This 32BitComponent uplevel.30729.4148.Microsoft_VC90_CRT_x64.QFE.DD7E30AD_4555_3131_8F48_1849E9 DBC229 uses 64BitDirectory p ayload_ul.30729.4148.Microsoft_VC90_CRT_x64.QFE.DD7E30AD_4555_3131_8F48_1849 E9DBC229 light.exe : error LGHT0204 : ICE80: This 32BitComponent downlevel_payload.30729.4148.Microsoft_VC90_CRT_x64.QFE.DD7E30AD_4555_3131_8 F48_1849E9DBC229 uses 64BitD irectory payload.30729.4148.Microsoft_VC90_CRT_x64.QFE.DD7E30AD_4555_3131_8F48_1849E9 DBC229 light.exe : error LGHT0204 : ICE80: This 32BitComponent downlevel_manifest.30729.4148.Microsoft_VC90_CRT_x64.QFE.DD7E30AD_4555_3131_ 8F48_1849E9DBC229 uses 64Bit Directory WinSxsManifests.30729.4148.Microsoft_VC90_CRT_x64.QFE.DD7E30AD_4555_3131_8F4 8_1849E9DBC229 light.exe : error LGHT0204 : ICE80: This 32BitComponent uplevel.30729.4148.policy_9_0_Microsoft_VC90_CRT_x64.QFE.F88F7F82_F6E0_309C_ 981C_800644564D24 uses 64Bit Directory payload_ul.30729.4148.policy_9_0_Microsoft_VC90_CRT_x64.QFE.F88F7F82_F6E0_30 9C_981C_800644564D24 light.exe : error LGHT0204 : ICE80: This 32BitComponent downlevel_manifest.30729.4148.policy_9_0_Microsoft_VC90_CRT_x64.QFE.F88F7F82 _F6E0_309C_981C_800644564D24 uses 64BitDirectory policydir.30729.4148.policy_9_0_Microsoft_VC90_CRT_x64.QFE.F88F7F82_F6E0_309 C_981C_800644564D24 light.exe : error LGHT0204 : ICE80: This 32BitComponent uplevel.30729.4148.Microsoft_VC90_MFC_x64.QFE.1D1BABF3_B608_379B_8FD1_BDA1F6 098DD6 uses 64BitDirectory p ayload_ul.30729.4148.Microsoft_VC90_MFC_x64.QFE.1D1BABF3_B608_379B_8FD1_BDA1 F6098DD6 light.exe : error LGHT0204 : ICE80: This 32BitComponent downlevel_payload.30729.4148.Microsoft_VC90_MFC_x64.QFE.1D1BABF3_B608_379B_8 FD1_BDA1F6098DD6 uses 64BitD irectory payload.30729.4148.Microsoft_VC90_MFC_x64.QFE.1D1BABF3_B608_379B_8FD1_BDA1F6 098DD6 light.exe : error LGHT0204 : ICE80: This 32BitComponent downlevel_manifest.30729.4148.Microsoft_VC90_MFC_x64.QFE.1D1BABF3_B608_379B_ 8FD1_BDA1F6098DD6 uses 64Bit Directory WinSxsManifests.30729.4148.Microsoft_VC90_MFC_x64.QFE.1D1BABF3_B608_379B_8FD 1_BDA1F6098DD6 light.exe : error LGHT0204 : ICE80: This 32BitComponent uplevel.30729.4148.policy_9_0_Microsoft_VC90_MFC_x64.QFE.C8ECA3D5_581C_3816_ B0A1_3556BB7418CE uses 64Bit Directory payload_ul.30729.4148.policy_9_0_Microsoft_VC90_MFC_x64.QFE.C8ECA3D5_581C_38 16_B0A1_3556BB7418CE light.exe : error LGHT0204 : ICE80: This 32BitComponent downlevel_manifest.30729.4148.policy_9_0_Microsoft_VC90_MFC_x64.QFE.C8ECA3D5 _581C_3816_B0A1_3556BB7418CE uses 64BitDirectory policydir.30729.4148.policy_9_0_Microsoft_VC90_MFC_x64.QFE.C8ECA3D5_581C_381 6_B0A1_3556BB7418CE 2) Nothing fancy: candle test.wxs light.exe -sw1055 -sw1056 -sw1076 -out test.msi test.wixobj -ext WixUIExtension Thomas -- View this message in context: http://n2.nabble.com/LGHT0204-ICE80-error-tp3849029p3849352.html Sent from the wix-users mailing list archive at Nabble.com. ---------------------------------------------------------------------------- -- Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users