Re: [WiX-users] 64-bit WiX
This appears to still be somewhat of an issue in Wix 3.5.2006.0. We use MSBuild on our developer workstations to build the series of projects, and it fails with the unable to load DLL 'winterop.dll'. Does anyone have a workaround or suggestion? Our command line to build looks something like this: c:\windows\microsoft.net\Framework\V3.5\msbuild.exe %XPSOURCE%\Platform\Platform.sln /t:Rebuild /p:Configuration=Debug;Platform=Mixed Platforms /verbosity:minimal /flp:errorsonly;logfile.xptbuild.err What I find to be particularly perplexing is that we are using the 32bit version of MSBuild, (at least I assume it is the 32bit version since the 64bit version is in the Framework64 directory tree). In addition, I only see these errors the first time I compile the projects, after that it appears to be fine. Does anyone have any ideas? -Original Message- From: Navid Azimi-Garakani [mailto:naz...@microsoft.com] Sent: Monday, April 12, 2010 8:34 PM To: wix-users@lists.sourceforge.net Subject: [WiX-users] 64-bit WiX I realize that this has been a long standing issuehttp://sourceforge.net/mailarchive/message.php?msg_name=9EE4B5B02235CB43ACFE2376CC2F11F0D03891%40ntxbeus04.exchange.xchg but I am working on getting the WiX toolset to compile and run as 64-bit processes. This is necessary because we're running into a BadImageFormatException when trying to invoke WiX via a 64-bit MSBuild process. For the most part, WiX seems to be run well on 64-bit architectures. However, almost all of the executables and WixBuild.Common.targets are hardcoded to x86. After playing around with the code, the (main) culprit it appears to be the native winterop application. I otherwise managed to recompile most of the exectuables (that I needed anyway) to AnyCPU including heat.exe, xsdgen.exe, msggen.exe, candle.exe, etc. Unfortunately, as you likely know, light.exe barfs with the following: light.exe : error LGHT0001: Unable to load DLL 'winterop.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) I am testing with v3.5.1602.0 of WiX and MSBuild 3.5. Is this on anyone's radar to fix for the WiX v3.5 timeframe? Is there really no easy to get this working? Am I better off looking into getting MSBuild to spinoff all of the WiX processes in WOW64? From what I can tell the work items to get this working include: 1. Fix WixBuild.Common.targets (and NAnt) to allow compiling for 64-bit architectures. 2. Remove all PlatformTaget=x86 references in the affected .csproj files. 3. Recompile / find 64-bit versions of following unmanaged libraries / executables: a. burnstub.exe b. setup.exe c. setupbld.exe d. mergemod.dll e. mspatchc.dll f.SetupBuilder.dll g. stdux.dll h. winterop.dll I think steps #1 and #2 look relatively easy but I am not sure about the availability / feasibility of #3. I suspect this is what has been delaying this feature request? Thanks, Navid -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] 64-bit WiX
On another note, I appear to have two versions of the dll installed (despite uninstalling Wix prior to installing the latest build). Here are the locations: C:\Program Files (x86)\Windows Installer XML v3.5\bin C:\Program Files (x86)\Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\Tools\Wix Let later is stamped as version 2.0.5805.0, the former is related to the current build. -Original Message- From: John Bergman Sent: Tuesday, August 10, 2010 1:55 PM To: wix-users@lists.sourceforge.net Subject: RE: 64-bit WiX This appears to still be somewhat of an issue in Wix 3.5.2006.0. We use MSBuild on our developer workstations to build the series of projects, and it fails with the unable to load DLL 'winterop.dll'. Does anyone have a workaround or suggestion? Our command line to build looks something like this: c:\windows\microsoft.net\Framework\V3.5\msbuild.exe %XPSOURCE%\Platform\Platform.sln /t:Rebuild /p:Configuration=Debug;Platform=Mixed Platforms /verbosity:minimal /flp:errorsonly;logfile.xptbuild.err What I find to be particularly perplexing is that we are using the 32bit version of MSBuild, (at least I assume it is the 32bit version since the 64bit version is in the Framework64 directory tree). In addition, I only see these errors the first time I compile the projects, after that it appears to be fine. Does anyone have any ideas? -Original Message- From: Navid Azimi-Garakani [mailto:naz...@microsoft.com] Sent: Monday, April 12, 2010 8:34 PM To: wix-users@lists.sourceforge.net Subject: [WiX-users] 64-bit WiX I realize that this has been a long standing issuehttp://sourceforge.net/mailarchive/message.php?msg_name=9EE4B5B02235CB43ACFE2376CC2F11F0D03891%40ntxbeus04.exchange.xchg but I am working on getting the WiX toolset to compile and run as 64-bit processes. This is necessary because we're running into a BadImageFormatException when trying to invoke WiX via a 64-bit MSBuild process. For the most part, WiX seems to be run well on 64-bit architectures. However, almost all of the executables and WixBuild.Common.targets are hardcoded to x86. After playing around with the code, the (main) culprit it appears to be the native winterop application. I otherwise managed to recompile most of the exectuables (that I needed anyway) to AnyCPU including heat.exe, xsdgen.exe, msggen.exe, candle.exe, etc. Unfortunately, as you likely know, light.exe barfs with the following: light.exe : error LGHT0001: Unable to load DLL 'winterop.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) I am testing with v3.5.1602.0 of WiX and MSBuild 3.5. Is this on anyone's radar to fix for the WiX v3.5 timeframe? Is there really no easy to get this working? Am I better off looking into getting MSBuild to spinoff all of the WiX processes in WOW64? From what I can tell the work items to get this working include: 1. Fix WixBuild.Common.targets (and NAnt) to allow compiling for 64-bit architectures. 2. Remove all PlatformTaget=x86 references in the affected .csproj files. 3. Recompile / find 64-bit versions of following unmanaged libraries / executables: a. burnstub.exe b. setup.exe c. setupbld.exe d. mergemod.dll e. mspatchc.dll f.SetupBuilder.dll g. stdux.dll h. winterop.dll I think steps #1 and #2 look relatively easy but I am not sure about the availability / feasibility of #3. I suspect this is what has been delaying this feature request? Thanks, Navid -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] 64-bit WiX
https://sourceforge.net/tracker/?func=detailaid=2990115group_id=105970atid=642714 -Original Message- From: Mike Carlson (DEV DIV) [mailto:mica...@microsoft.com] Sent: Tuesday, April 20, 2010 8:59 AM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] 64-bit WiX Please file a bug for this, if you haven't already. Thanks, Mike Carlson -Original Message- From: Navid Azimi-Garakani [mailto:naz...@microsoft.com] Sent: Monday, April 19, 2010 4:14 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] 64-bit WiX Thanks Gary. You are spot on! I just figured this out too but now I am stuck with HeatProject failing. It looks like the Heat task in Wix.targets does not honor the RunWixToolsOutOfProc property. This looks like a very simple fix (just pass the property) -- so I hope this gets into WiX 3.5. HeatFile, HeatProject and HeatDirectory need to add RunAsSeparateProcess=$(RunWixToolsOutOfProc) to their targets. Thanks, Navid -Original Message- From: Gary Schorer [mailto:thanatoas...@gmail.com] Sent: Monday, April 19, 2010 3:55 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] 64-bit WiX To be a little more specific, the _SetDefaultPathValues target is likely what's causing you grief. It looks at registry keys to try and detect if the 32-bit version of Wix is installed. If so, it sets the WixToolPath property accordingly. It then checks if the WixToolPath was set, and if not (i.e. no 32-bit install was found, therefore we must be 64-bit), it sets RunWixToolsOutOfProc to true. Two things can cause problems with this: 1) Having registry keys from the 32-bit version of Wix on your machine. 2) Manually overriding the WixToolPath property in your build process. Either one of these will trick the targets into thinking they should be running in 32-bit mode. If you're manually setting the WixToolPath property, just set RunWixToolsOutOfProc to true in the same place. On Mon, Apr 19, 2010 at 6:31 PM, Gary Schorer thanatoas...@gmail.comwrote: In my case, I just stopped running the Wix tools in process. RunWixToolsOutOfProctrue/RunWixToolsOutOfProc On Mon, Apr 19, 2010 at 6:21 PM, Navid Azimi-Garakani naz...@microsoft.com wrote: I am using WiX 3.5.1602.0. If you look at the executables with corflags, you'll see that they are compiled for the 32-bit architecture. d:\wix\3.5.1602.0corflags candle.exe Version : v2.0.50727 CLR Header: 2.5 PE: PE32 CorFlags : 11 ILONLY: 1 32BIT : 1 -- 32-bit flag Signed: 1 d:\wix\3.5.1602.0corflags light.exe Version : v2.0.50727 CLR Header: 2.5 PE: PE32 CorFlags : 11 ILONLY: 1 32BIT : 1 --- 32-bit flag Signed: 1 As a result, when loaded from a 64-bit MSBuild process, I am getting the following exception: 100Unhandled Exception: System.BadImageFormatException: Could not 100load file or assembly 'file:///d:\wix\3.5.1602.0\candle.exe' or one of its dependencies. An attempt was made to load a program with an incorrect format. 100File name: 'file:///d:\wix\3.5.1602.0\candle.exe' 100 at System.Reflection.Assembly._nLoad(AssemblyName fileName, 100String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) 100 at System.Reflection.Assembly.InternalLoad(AssemblyName 100 assemblyRef, Evidence assemblySecurity, StackCrawlMark stackMark, Boolean forIntrospection) 100 at System.Reflection.Assembly.LoadFrom(String assemblyFile) at Microsoft.Tools.WindowsInstallerXml.Build.Tasks.WixToolTask.ExecuteTo olThread(Object parameters) 100 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 100 at System.Threading.ThreadHelper.ThreadStart(Object obj) 100Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll 100Running under executable 100d:\tools\AMD64\managed\urt\v3.5\MSBuild.exe 100--- A detailed error log follows. 100=== Pre-bind state information === 100LOG: User = ### 100LOG: Where-ref bind. Location = d:\wix\3.5.1602.0\candle.exe 100LOG: Appbase = file:///d:/tools/AMD64/managed/urt/v3.5/ 100LOG: Initial PrivatePath = NULL 100Calling assembly : (Unknown). 100=== 100LOG: This bind starts in LoadFrom load context. 100WRN: Native image will not be probed in LoadFrom context. Native 100image will only be probed in default load context, like with Assembly.Load(). 100LOG: Using application configuration file: d:\tools\AMD64\managed\urt\v3.5\MSBuild.exe.Config 100LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v2.0.50727\config\machine.config. 100LOG: Attempting download of new URL file:///d:/wix/3.5.1602.0/candle.exe. 100ERR: Failed to complete setup of assembly (hr = 0x8007000b). 100Probing terminated. Do we
Re: [WiX-users] 64-bit WiX
I am using WiX 3.5.1602.0. If you look at the executables with corflags, you'll see that they are compiled for the 32-bit architecture. d:\wix\3.5.1602.0corflags candle.exe Version : v2.0.50727 CLR Header: 2.5 PE: PE32 CorFlags : 11 ILONLY: 1 32BIT : 1 -- 32-bit flag Signed: 1 d:\wix\3.5.1602.0corflags light.exe Version : v2.0.50727 CLR Header: 2.5 PE: PE32 CorFlags : 11 ILONLY: 1 32BIT : 1 --- 32-bit flag Signed: 1 As a result, when loaded from a 64-bit MSBuild process, I am getting the following exception: 100Unhandled Exception: System.BadImageFormatException: Could not load file or assembly 'file:///d:\wix\3.5.1602.0\candle.exe' or one of its dependencies. An attempt was made to load a program with an incorrect format. 100File name: 'file:///d:\wix\3.5.1602.0\candle.exe' 100 at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) 100 at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark stackMark, Boolean forIntrospection) 100 at System.Reflection.Assembly.LoadFrom(String assemblyFile) 100 at Microsoft.Tools.WindowsInstallerXml.Build.Tasks.WixToolTask.ExecuteToolThread(Object parameters) 100 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 100 at System.Threading.ThreadHelper.ThreadStart(Object obj) 100Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll 100Running under executable d:\tools\AMD64\managed\urt\v3.5\MSBuild.exe 100--- A detailed error log follows. 100=== Pre-bind state information === 100LOG: User = ### 100LOG: Where-ref bind. Location = d:\wix\3.5.1602.0\candle.exe 100LOG: Appbase = file:///d:/tools/AMD64/managed/urt/v3.5/ 100LOG: Initial PrivatePath = NULL 100Calling assembly : (Unknown). 100=== 100LOG: This bind starts in LoadFrom load context. 100WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load(). 100LOG: Using application configuration file: d:\tools\AMD64\managed\urt\v3.5\MSBuild.exe.Config 100LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v2.0.50727\config\machine.config. 100LOG: Attempting download of new URL file:///d:/wix/3.5.1602.0/candle.exe. 100ERR: Failed to complete setup of assembly (hr = 0x8007000b). Probing terminated. Do we have a 64-bit compatible version of these executables? I looked at the assemblies installed when running Wix64.msi but there appears to be no difference to the assemblies themselves. What am I misunderstanding about WiX supporting 64-bit MSBuild? Thanks, Navid -Original Message- From: Bob Arnson [mailto:b...@joyofsetup.com] Sent: Monday, April 12, 2010 7:14 PM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] 64-bit WiX On 4/12/2010 9:33 PM, Navid Azimi-Garakani wrote: I realize that this has been a long standing issuehttp://sourceforge.net/mailarchive/message.php?msg_name=9EE4B5B02235CB43ACFE2376CC2F11F0D03891%40ntxbeus04.exchange.xchg but I am working on getting the WiX toolset to compile and run as 64-bit processes. This is necessary because we're running into a BadImageFormatException when trying to invoke WiX via a 64-bit MSBuild process. How are you doing that? The shipping wix.targets already supports 64-bit MSBuild. -- sig://boB http://joyofsetup.com/ -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] 64-bit WiX
In my case, I just stopped running the Wix tools in process. RunWixToolsOutOfProctrue/RunWixToolsOutOfProc On Mon, Apr 19, 2010 at 6:21 PM, Navid Azimi-Garakani naz...@microsoft.comwrote: I am using WiX 3.5.1602.0. If you look at the executables with corflags, you'll see that they are compiled for the 32-bit architecture. d:\wix\3.5.1602.0corflags candle.exe Version : v2.0.50727 CLR Header: 2.5 PE: PE32 CorFlags : 11 ILONLY: 1 32BIT : 1 -- 32-bit flag Signed: 1 d:\wix\3.5.1602.0corflags light.exe Version : v2.0.50727 CLR Header: 2.5 PE: PE32 CorFlags : 11 ILONLY: 1 32BIT : 1 --- 32-bit flag Signed: 1 As a result, when loaded from a 64-bit MSBuild process, I am getting the following exception: 100Unhandled Exception: System.BadImageFormatException: Could not load file or assembly 'file:///d:\wix\3.5.1602.0\candle.exe' or one of its dependencies. An attempt was made to load a program with an incorrect format. 100File name: 'file:///d:\wix\3.5.1602.0\candle.exe' 100 at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) 100 at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark stackMark, Boolean forIntrospection) 100 at System.Reflection.Assembly.LoadFrom(String assemblyFile) 100 at Microsoft.Tools.WindowsInstallerXml.Build.Tasks.WixToolTask.ExecuteToolThread(Object parameters) 100 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 100 at System.Threading.ThreadHelper.ThreadStart(Object obj) 100Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll 100Running under executable d:\tools\AMD64\managed\urt\v3.5\MSBuild.exe 100--- A detailed error log follows. 100=== Pre-bind state information === 100LOG: User = ### 100LOG: Where-ref bind. Location = d:\wix\3.5.1602.0\candle.exe 100LOG: Appbase = file:///d:/tools/AMD64/managed/urt/v3.5/ 100LOG: Initial PrivatePath = NULL 100Calling assembly : (Unknown). 100=== 100LOG: This bind starts in LoadFrom load context. 100WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load(). 100LOG: Using application configuration file: d:\tools\AMD64\managed\urt\v3.5\MSBuild.exe.Config 100LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v2.0.50727\config\machine.config. 100LOG: Attempting download of new URL file:///d:/wix/3.5.1602.0/candle.exe. 100ERR: Failed to complete setup of assembly (hr = 0x8007000b). Probing terminated. Do we have a 64-bit compatible version of these executables? I looked at the assemblies installed when running Wix64.msi but there appears to be no difference to the assemblies themselves. What am I misunderstanding about WiX supporting 64-bit MSBuild? Thanks, Navid -Original Message- From: Bob Arnson [mailto:b...@joyofsetup.com] Sent: Monday, April 12, 2010 7:14 PM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] 64-bit WiX On 4/12/2010 9:33 PM, Navid Azimi-Garakani wrote: I realize that this has been a long standing issue http://sourceforge.net/mailarchive/message.php?msg_name=9EE4B5B02235CB43ACFE2376CC2F11F0D03891%40ntxbeus04.exchange.xchg but I am working on getting the WiX toolset to compile and run as 64-bit processes. This is necessary because we're running into a BadImageFormatException when trying to invoke WiX via a 64-bit MSBuild process. How are you doing that? The shipping wix.targets already supports 64-bit MSBuild. -- sig://boB http://joyofsetup.com/ -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Download
Re: [WiX-users] 64-bit WiX
To be a little more specific, the _SetDefaultPathValues target is likely what's causing you grief. It looks at registry keys to try and detect if the 32-bit version of Wix is installed. If so, it sets the WixToolPath property accordingly. It then checks if the WixToolPath was set, and if not (i.e. no 32-bit install was found, therefore we must be 64-bit), it sets RunWixToolsOutOfProc to true. Two things can cause problems with this: 1) Having registry keys from the 32-bit version of Wix on your machine. 2) Manually overriding the WixToolPath property in your build process. Either one of these will trick the targets into thinking they should be running in 32-bit mode. If you're manually setting the WixToolPath property, just set RunWixToolsOutOfProc to true in the same place. On Mon, Apr 19, 2010 at 6:31 PM, Gary Schorer thanatoas...@gmail.comwrote: In my case, I just stopped running the Wix tools in process. RunWixToolsOutOfProctrue/RunWixToolsOutOfProc On Mon, Apr 19, 2010 at 6:21 PM, Navid Azimi-Garakani naz...@microsoft.com wrote: I am using WiX 3.5.1602.0. If you look at the executables with corflags, you'll see that they are compiled for the 32-bit architecture. d:\wix\3.5.1602.0corflags candle.exe Version : v2.0.50727 CLR Header: 2.5 PE: PE32 CorFlags : 11 ILONLY: 1 32BIT : 1 -- 32-bit flag Signed: 1 d:\wix\3.5.1602.0corflags light.exe Version : v2.0.50727 CLR Header: 2.5 PE: PE32 CorFlags : 11 ILONLY: 1 32BIT : 1 --- 32-bit flag Signed: 1 As a result, when loaded from a 64-bit MSBuild process, I am getting the following exception: 100Unhandled Exception: System.BadImageFormatException: Could not load file or assembly 'file:///d:\wix\3.5.1602.0\candle.exe' or one of its dependencies. An attempt was made to load a program with an incorrect format. 100File name: 'file:///d:\wix\3.5.1602.0\candle.exe' 100 at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) 100 at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark stackMark, Boolean forIntrospection) 100 at System.Reflection.Assembly.LoadFrom(String assemblyFile) 100 at Microsoft.Tools.WindowsInstallerXml.Build.Tasks.WixToolTask.ExecuteToolThread(Object parameters) 100 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 100 at System.Threading.ThreadHelper.ThreadStart(Object obj) 100Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll 100Running under executable d:\tools\AMD64\managed\urt\v3.5\MSBuild.exe 100--- A detailed error log follows. 100=== Pre-bind state information === 100LOG: User = ### 100LOG: Where-ref bind. Location = d:\wix\3.5.1602.0\candle.exe 100LOG: Appbase = file:///d:/tools/AMD64/managed/urt/v3.5/ 100LOG: Initial PrivatePath = NULL 100Calling assembly : (Unknown). 100=== 100LOG: This bind starts in LoadFrom load context. 100WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load(). 100LOG: Using application configuration file: d:\tools\AMD64\managed\urt\v3.5\MSBuild.exe.Config 100LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v2.0.50727\config\machine.config. 100LOG: Attempting download of new URL file:///d:/wix/3.5.1602.0/candle.exe. 100ERR: Failed to complete setup of assembly (hr = 0x8007000b). Probing terminated. Do we have a 64-bit compatible version of these executables? I looked at the assemblies installed when running Wix64.msi but there appears to be no difference to the assemblies themselves. What am I misunderstanding about WiX supporting 64-bit MSBuild? Thanks, Navid -Original Message- From: Bob Arnson [mailto:b...@joyofsetup.com] Sent: Monday, April 12, 2010 7:14 PM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] 64-bit WiX On 4/12/2010 9:33 PM, Navid Azimi-Garakani wrote: I realize that this has been a long standing issue http://sourceforge.net/mailarchive/message.php?msg_name=9EE4B5B02235CB43ACFE2376CC2F11F0D03891%40ntxbeus04.exchange.xchg but I am working on getting the WiX toolset to compile and run as 64-bit processes. This is necessary because we're running into a BadImageFormatException when trying to invoke WiX via a 64-bit MSBuild process. How are you doing that? The shipping wix.targets already supports 64-bit MSBuild. -- sig://boB http://joyofsetup.com/ -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel
Re: [WiX-users] 64-bit WiX
Thanks Gary. You are spot on! I just figured this out too but now I am stuck with HeatProject failing. It looks like the Heat task in Wix.targets does not honor the RunWixToolsOutOfProc property. This looks like a very simple fix (just pass the property) -- so I hope this gets into WiX 3.5. HeatFile, HeatProject and HeatDirectory need to add RunAsSeparateProcess=$(RunWixToolsOutOfProc) to their targets. Thanks, Navid -Original Message- From: Gary Schorer [mailto:thanatoas...@gmail.com] Sent: Monday, April 19, 2010 3:55 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] 64-bit WiX To be a little more specific, the _SetDefaultPathValues target is likely what's causing you grief. It looks at registry keys to try and detect if the 32-bit version of Wix is installed. If so, it sets the WixToolPath property accordingly. It then checks if the WixToolPath was set, and if not (i.e. no 32-bit install was found, therefore we must be 64-bit), it sets RunWixToolsOutOfProc to true. Two things can cause problems with this: 1) Having registry keys from the 32-bit version of Wix on your machine. 2) Manually overriding the WixToolPath property in your build process. Either one of these will trick the targets into thinking they should be running in 32-bit mode. If you're manually setting the WixToolPath property, just set RunWixToolsOutOfProc to true in the same place. On Mon, Apr 19, 2010 at 6:31 PM, Gary Schorer thanatoas...@gmail.comwrote: In my case, I just stopped running the Wix tools in process. RunWixToolsOutOfProctrue/RunWixToolsOutOfProc On Mon, Apr 19, 2010 at 6:21 PM, Navid Azimi-Garakani naz...@microsoft.com wrote: I am using WiX 3.5.1602.0. If you look at the executables with corflags, you'll see that they are compiled for the 32-bit architecture. d:\wix\3.5.1602.0corflags candle.exe Version : v2.0.50727 CLR Header: 2.5 PE: PE32 CorFlags : 11 ILONLY: 1 32BIT : 1 -- 32-bit flag Signed: 1 d:\wix\3.5.1602.0corflags light.exe Version : v2.0.50727 CLR Header: 2.5 PE: PE32 CorFlags : 11 ILONLY: 1 32BIT : 1 --- 32-bit flag Signed: 1 As a result, when loaded from a 64-bit MSBuild process, I am getting the following exception: 100Unhandled Exception: System.BadImageFormatException: Could not 100load file or assembly 'file:///d:\wix\3.5.1602.0\candle.exe' or one of its dependencies. An attempt was made to load a program with an incorrect format. 100File name: 'file:///d:\wix\3.5.1602.0\candle.exe' 100 at System.Reflection.Assembly._nLoad(AssemblyName fileName, 100String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) 100 at System.Reflection.Assembly.InternalLoad(AssemblyName 100 assemblyRef, Evidence assemblySecurity, StackCrawlMark stackMark, Boolean forIntrospection) 100 at System.Reflection.Assembly.LoadFrom(String assemblyFile) at Microsoft.Tools.WindowsInstallerXml.Build.Tasks.WixToolTask.ExecuteTo olThread(Object parameters) 100 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 100 at System.Threading.ThreadHelper.ThreadStart(Object obj) 100Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll 100Running under executable 100d:\tools\AMD64\managed\urt\v3.5\MSBuild.exe 100--- A detailed error log follows. 100=== Pre-bind state information === 100LOG: User = ### 100LOG: Where-ref bind. Location = d:\wix\3.5.1602.0\candle.exe 100LOG: Appbase = file:///d:/tools/AMD64/managed/urt/v3.5/ 100LOG: Initial PrivatePath = NULL 100Calling assembly : (Unknown). 100=== 100LOG: This bind starts in LoadFrom load context. 100WRN: Native image will not be probed in LoadFrom context. Native 100image will only be probed in default load context, like with Assembly.Load(). 100LOG: Using application configuration file: d:\tools\AMD64\managed\urt\v3.5\MSBuild.exe.Config 100LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v2.0.50727\config\machine.config. 100LOG: Attempting download of new URL file:///d:/wix/3.5.1602.0/candle.exe. 100ERR: Failed to complete setup of assembly (hr = 0x8007000b). 100Probing terminated. Do we have a 64-bit compatible version of these executables? I looked at the assemblies installed when running Wix64.msi but there appears to be no difference to the assemblies themselves. What am I misunderstanding about WiX supporting 64-bit MSBuild? Thanks, Navid -Original Message- From: Bob Arnson [mailto:b...@joyofsetup.com] Sent: Monday, April 12, 2010 7:14 PM To: wix-users@lists.sourceforge.net Subject: Re: [WiX-users] 64-bit WiX On 4/12/2010 9:33 PM, Navid Azimi-Garakani wrote: I realize that this has been a long standing issue http://sourceforge.net
[WiX-users] 64-bit WiX
I realize that this has been a long standing issuehttp://sourceforge.net/mailarchive/message.php?msg_name=9EE4B5B02235CB43ACFE2376CC2F11F0D03891%40ntxbeus04.exchange.xchg but I am working on getting the WiX toolset to compile and run as 64-bit processes. This is necessary because we're running into a BadImageFormatException when trying to invoke WiX via a 64-bit MSBuild process. For the most part, WiX seems to be run well on 64-bit architectures. However, almost all of the executables and WixBuild.Common.targets are hardcoded to x86. After playing around with the code, the (main) culprit it appears to be the native winterop application. I otherwise managed to recompile most of the exectuables (that I needed anyway) to AnyCPU including heat.exe, xsdgen.exe, msggen.exe, candle.exe, etc. Unfortunately, as you likely know, light.exe barfs with the following: light.exe : error LGHT0001: Unable to load DLL 'winterop.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) I am testing with v3.5.1602.0 of WiX and MSBuild 3.5. Is this on anyone's radar to fix for the WiX v3.5 timeframe? Is there really no easy to get this working? Am I better off looking into getting MSBuild to spinoff all of the WiX processes in WOW64? From what I can tell the work items to get this working include: 1. Fix WixBuild.Common.targets (and NAnt) to allow compiling for 64-bit architectures. 2. Remove all PlatformTaget=x86 references in the affected .csproj files. 3. Recompile / find 64-bit versions of following unmanaged libraries / executables: a. burnstub.exe b. setup.exe c. setupbld.exe d. mergemod.dll e. mspatchc.dll f.SetupBuilder.dll g. stdux.dll h. winterop.dll I think steps #1 and #2 look relatively easy but I am not sure about the availability / feasibility of #3. I suspect this is what has been delaying this feature request? Thanks, Navid -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] 64-bit WiX
On 4/12/2010 9:33 PM, Navid Azimi-Garakani wrote: I realize that this has been a long standing issuehttp://sourceforge.net/mailarchive/message.php?msg_name=9EE4B5B02235CB43ACFE2376CC2F11F0D03891%40ntxbeus04.exchange.xchg but I am working on getting the WiX toolset to compile and run as 64-bit processes. This is necessary because we're running into a BadImageFormatException when trying to invoke WiX via a 64-bit MSBuild process. How are you doing that? The shipping wix.targets already supports 64-bit MSBuild. -- sig://boB http://joyofsetup.com/ -- Download Intel#174; Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] 64-bit wix tools (heat/etc...)
Pyro.exe would be broken by making it a 64-bit tool, since it has to interop with a 32-bit dll (not via COM) that does not exist in a 64-bit version. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bob Arnson Sent: Sunday, July 06, 2008 4:24 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] 64-bit wix tools (heat/etc...) Aaron Averbuch wrote: What's the latest timeframe expected on 64-bit tools, especially compiling heat.exe for both x64 and x86 for .NET? Heat is the only tool that might benefit from it. Heat doesn't currently have an owner, though, so I'm not aware of any plans to make an x64 version of it. Feel free to file a feature request or, better yet, submit a patch. -- sig://boB http://joyofsetup.com/ - Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users - Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] 64-bit wix tools (heat/etc...)
Aaron Averbuch wrote: What's the latest timeframe expected on 64-bit tools, especially compiling heat.exe for both x64 and x86 for .NET? Heat is the only tool that might benefit from it. Heat doesn't currently have an owner, though, so I'm not aware of any plans to make an x64 version of it. Feel free to file a feature request or, better yet, submit a patch. -- sig://boB http://joyofsetup.com/ - Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
[WiX-users] 64-bit wix tools (heat/etc...)
Great work moving towards 64-bit compatibility so far. What's the latest timeframe expected on 64-bit tools, especially compiling heat.exe for both x64 and x86 for .NET? (it would be great to get them separately, rather than anycpu, such that we could run both, as appropriate for the dll being harvested, on an x64 build machine) I'd love to be able to harvest regkey settings out of 64-bit dlls, and obviously, x64 heat would be needed for this, since x86 heat can't load the files. Thanks, Aaron Averbuch Software Development Manager Pure Networks, Inc. (206) 812-1919 http://www.purenetworks.com http://www.purenetworks.com/ - Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users