Rob,

 

I don’t think just filing a single bug will make thing done for x64 build.

There are several outstanding issues for native x64 binaries.

 

1. To act as a native x64 binary (MSIL or x64 native image), it should be compiled as .NET Framework 2.0 assembly.

(supportedRuntime element in .config does not generate 64-bit native images.)

 

2. mergemod.dll should be x64 native binary if you really need it. But there are no x64 native binary redistributable file at this time. Platform SDK only contains 32-bit version of mergemod.dll. You, guys in Microsoft, may request for the native binaries. J

 

3. All custom action DLLs are generated as x64 native binaries. MSI engine calls both 32-bit custom actions and 64-bit custom actions in x64 packages. But 64-bit custom actions cannot be called in 32-bit MSI engine.

 

4. I don’t think VSIP support x64 native images. Maybe wix does not need to generate native images but .net assemblies for VSIP. In that case, this doesn’t matter.

 

5. winterop.dll needs to be both x86 and x64 native images, as it may be used in 32-bit assembly and 64-bit assembly.

 

Anyhow, do we really need x64 binaries?

 

Yes, we may need them, but not the whole toolset. At first, there are some guys who need native wix custom action DLLs.

 

I haven’t used custom action DLLs shipped with WIX yet. So I don’t know if it is really necessary or not.

I author device driver installation packages and they require native custom action DLLs for x64. (I am not using DIFx).

 

Other than custom action DLLs, I do not really see any needs for real x64 packages. Wix tools compiled only for .NET 2.0 will be sufficient to make use of native performance of x64 platforms, given that those are compiled as MSIL (or AnyCPU, it’s default). But even if you take this route, you need to supply native x64 mergemod.dll also. Interop’s curse it is.

 

It’s the decision of you and other core developer’s decision whether it will support and how.

 

Chesong Lee

 

 

P.S. FYI, I have successfully compiled everything in x64 in my machine. But wix .net binaries are compiled in 1.1 mode in the current build configuration. Other native ca DLLs are (scaexec.dll, scasched.dll, winterop.dll, wixca.dll) are all x64 native images. As you may anticipate, this simply does not work even after successful compilation. Winterop.dll is now 64-bit DLL. But light.exe is 32-bit assembly. Light.exe cannot call any functions in Winterop.dll. L So candle.exe works. But light.exe does not. Anyhow you need more changes than those of Stevens.

 

directories.include

 

  <!-- Library directories -->

  <!-- <property name="dir.platformsdk.lib.x86" value="${path::combine(dir.platformsdk, 'Lib')}" readonly="true" /> -->

  <property name="dir.platformsdk.lib.x86" value="${path::combine(dir.platformsdk, 'Lib\AMD64')}" readonly="true" />

  <!-- <property name="dir.vc8.lib.x86" value="${path::combine(dir.vc8, 'lib')}" readonly="true" /> -->

<property name="dir.vc8.lib.x86" value="${path::combine(dir.vc8, 'lib\amd64')}" readonly="true" />

 

global.include

 

  <if test="${x86}">

    <property name="cl.defines" value="${cl.defines} -DWIN32 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0500 -D_AMD64_ -D_AMD64_=1 " />

    <!-- <property name="cl.defines" value="${cl.defines} -DWIN32 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0500 -D_X86_ -Di386=1 -D_X86_=1" /> -->

</if>

 

 

  <if test="${x86}">

      <!--

    <property name="link.standardOptions" value="${link.standardOptions} -machine:x86" />

    <property name="lib.standardOptions" value="${lib.standardOptions} -machine:x86" />

      -->

    <property name="link.standardOptions" value="${link.standardOptions} -machine:x64" />

    <property name="lib.standardOptions" value="${lib.standardOptions} -machine:x64" />

  </if>

 

 

And you need to call “%VS80DIR%\vc\bin\amd64\vcvarsamd64.bat” instead of plain vcvars32.bat to set up the VC environment.

 

 


From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Rob Mensching
Sent: Sunday, April 16, 2006 12:45 AM
To: 'Steven Chin'; [EMAIL PROTECTED]; [email protected]
Subject: [WiX-users] RE: [WiX-devs] Problem building 64 bit WIX

 

I don't think QTest is working yet. I need to follow up with SF to get some of the bad files deleted out of CVS.  If the only problem you have left is QTest, I think you're good to go.

 

If you could open a bug and provide all the details that you found necessary to build on x64, I'll get those incorporated into the build scripts.  Thanks!

 


From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Steven Chin
Sent: Friday, April 14, 2006 3:12 PM
To: [EMAIL PROTECTED]; [email protected]
Subject: [WiX-devs] Problem building 64 bit WIX

 

My environment is a little different from Chesong’s.

I had to change make.bat to override dir.platformsdk and dir.vc8

 

nant.exe -buildfile:"%ROOT%\wix.build" %ACTION% -D:dir.root=%ROOT% -D:dir.platformsdk="C:\Program Files\Microsoft Platform SDK" -D:dir.vc8="C:\Program Files\Microsoft Visual Studio 8\VC" -D:COMPLUSBUILD="v2.0.50727.42"  -D:flavor=%FLAVOR% %VERBOSE%

 

then in global.include I had to set my architecture and change my machine

 

<if test="${x86}">

     <property name="cl.defines" value="${cl.defines} -D_AMD64_ -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0500 " />

</if>

 

<if test="${x86}">

   <property name="link.standardOptions" value="${link.standardOptions} -machine:x64" />

   <property name="lib.standardOptions" value="${lib.standardOptions} -machine:x64" />

</if>

 

I was able to compile some programs but I eventually run into problems in QTest.  Main should be the entry point but I am getting this error below.  Any ideas why I am getting the error?  Thanks.

 

S:\sandbox\schin\workspaces\schin.3rdparty\tmw\wix\\Build\debug\qtest\tests.xsd)' in 'S:\sandbox\schin\workspaces\schin.3rdparty\tmw\wix'

      [csc] Output file 'S:\sandbox\schin\workspaces\schin.3rdparty\tmw\wix\Release\debug\WixQTest.exe' does not exist, rebuilding.

      [csc] Compiling 2 files to 'S:\sandbox\schin\workspaces\schin.3rdparty\tmw\wix\Release\debug\WixQTest.exe'."

      [csc] Contents of c:\temp\tmpA41.tmp.

      [csc] /fullpaths

      [csc] /debug

      [csc] /checked

      [csc] "/warn:4"

      [csc] /nologo

      [csc] "/target:exe"

      [csc] "/define:DEBUG"

      [csc] "/out:S:\sandbox\schin\workspaces\schin.3rdparty\tmw\wix\Release\debug\WixQTest.exe"

      [csc] /warnaserror

      [csc] "/reference:S:\sandbox\schin\workspaces\schin.3rdparty\tmw\wix\Release\debug\wix.dll"

      [csc] "/resource:S:\sandbox\schin\workspaces\schin.3rdparty\tmw\wix\Build\debug\qtest\tests.xsd,Microsoft.Tools.WixQTest.Xsd.tests.xsd"

      [csc] "S:\sandbox\schin\workspaces\schin.3rdparty\tmw\wix\inc\wixver.cs"

      [csc] "S:\sandbox\schin\workspaces\schin.3rdparty\tmw\wix\Build\debug\wixkey.cs"

      [csc]

      [csc] Starting 'c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe (@"c:\temp\tmpA41.tmp")' in 'S:\sandbox\schin\workspaces\schin.3rdparty\tmw\wix'

      [csc] error CS5001: Program 's:\sandbox\schin\workspaces\schin.3rdparty\tmw\wix\release\debug\WixQTest.exe' does not have an entry point defined

 

BUILD FAILED - 2 non-fatal error(s), 2 warning(s)

 

S:\sandbox\schin\workspaces\schin.3rdparty\tmw\wix\src\qtest\qtest.build(47,6):

External Program Failed: c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe (return code was 1):

NAnt.Core.BuildException: S:\sandbox\schin\workspaces\schin.3rdparty\tmw\wix\src\qtest\qtest.build(47,6):

External Program Failed: c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe (return code was 1)

   at NAnt.Core.Tasks.ExternalProgramBase.ExecuteTask()

   at NAnt.DotNet.Tasks.CompilerBase.ExecuteTask()

   at NAnt.Core.Task.Execute()

   at NAnt.Core.Target.Execute()

   at NAnt.Core.Project.Execute(String targetName, Boolean forceDependencies)

   at NAnt.Core.Project.Execute()

   at NAnt.Core.Project.Run()

 

 

 

Reply via email to