Re: [WiX-users] 64-bit WiX

2010-08-10 Thread John Bergman
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

2010-08-10 Thread John Bergman
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

2010-04-20 Thread Navid Azimi-Garakani
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

2010-04-19 Thread Navid Azimi-Garakani
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

2010-04-19 Thread Gary Schorer
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

2010-04-19 Thread Gary Schorer
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

2010-04-19 Thread Navid Azimi-Garakani
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

2010-04-12 Thread Navid Azimi-Garakani
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

2010-04-12 Thread Bob Arnson
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...)

2008-07-07 Thread Blair Murri
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...)

2008-07-06 Thread Bob Arnson
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...)

2008-07-02 Thread Aaron Averbuch
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