NPanday
  1. NPanday
  2. NPANDAY-369

Explicit 64bit-Support (NPanday now doesn't distinguish)

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 1.4-incubating
    • Fix Version/s: 2.0
    • Component/s: Development Setup
    • Labels:
    • Environment:

      Win 7, x64, VS 2010 only

      Description

      Building NPanday from source (including tests) on 64bit windows fails.

      The problem is, that all resources are built with the 64-bit version of the .NET Framework tools. Also then, the nunit-console runs everything (including MSBUILD) in 64 bit.

      NPanday itself should allways be built using x86. It should furthermore have strong support for building both 32bit and 64bit apps on 64bit systems.

        Activity

        Hide
        Brett Porter added a comment -

        I've filed NPANDAY-601 to support the /platform argument to the compiler, as a starting point. We should work through the tool locations as part of NPANDAY-505.

        I'm not sure I understand the comment about the architecture that NPanday itself should run under - AnyCPU seems the most appropriate for the AddIn?

        Show
        Brett Porter added a comment - I've filed NPANDAY-601 to support the /platform argument to the compiler, as a starting point. We should work through the tool locations as part of NPANDAY-505 . I'm not sure I understand the comment about the architecture that NPanday itself should run under - AnyCPU seems the most appropriate for the AddIn?
        Hide
        Greg Domjan added a comment -

        Like to add for per project settings/defaults

        It would be nice if you could default 'All configured platforms for the project' or otherwise specify AnyCpu/x86/x64/x86 & x64 without having to restart/run multiple tools due to having to run vsvars. Some solutions may contain a mix of these options.

        We have needed to compile the same project using multiple MSVC versions due to the API.

        I haven't had trouble with it yet, is it also important to be able to target multiple .Net Framework versions?

        Show
        Greg Domjan added a comment - Like to add for per project settings/defaults It would be nice if you could default 'All configured platforms for the project' or otherwise specify AnyCpu/x86/x64/x86 & x64 without having to restart/run multiple tools due to having to run vsvars. Some solutions may contain a mix of these options. We have needed to compile the same project using multiple MSVC versions due to the API. I haven't had trouble with it yet, is it also important to be able to target multiple .Net Framework versions?
        Show
        Lars Corneliussen added a comment - Why reinvent the wheel? http://msdn.microsoft.com/en-us/library/microsoft.build.utilities.toollocationhelper.aspx
        Hide
        Lars Corneliussen added a comment - - edited

        Hints I found in Microsoft.Common.targets

        Maybe that helps us to find the correct names.

        <ProcessorArchitecture Condition=" '$(PlatformTarget)' == 'AnyCpu' ">msil</ProcessorArchitecture>
        <ProcessorArchitecture Condition=" '$(PlatformTarget)' == 'x64' ">amd64</ProcessorArchitecture>
        <ProcessorArchitecture Condition=" '$(PlatformTarget)' == 'Itanium' ">ia64</ProcessorArchitecture>
        <ProcessorArchitecture Condition=" '$(PlatformTarget)' == 'x86' ">x86</ProcessorArchitecture>
        
        Show
        Lars Corneliussen added a comment - - edited Hints I found in Microsoft.Common.targets Maybe that helps us to find the correct names. <ProcessorArchitecture Condition= " '$(PlatformTarget)' == 'AnyCpu' " >msil</ProcessorArchitecture> <ProcessorArchitecture Condition= " '$(PlatformTarget)' == 'x64' " >amd64</ProcessorArchitecture> <ProcessorArchitecture Condition= " '$(PlatformTarget)' == 'Itanium' " >ia64</ProcessorArchitecture> <ProcessorArchitecture Condition= " '$(PlatformTarget)' == 'x86' " >x86</ProcessorArchitecture>
        Hide
        Lars Corneliussen added a comment -

        Some notes about framework and SDK pathes

        4.0 SDK

        • x86 – C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools AND C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin
        • 64bit – C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\x64 AND C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\x86

        2.0 SDK

        • x86 – C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\bin
        • 64bit – C:\Program Files\Microsoft.NET\SDK\v2.0 64bit\bin

        .NET-Framework installations

        • x86 – C:\Windows\Microsoft.NET\Framework\version
        • 64bit – C:\Windows\Microsoft.NET\Framework64\version
        Show
        Lars Corneliussen added a comment - Some notes about framework and SDK pathes 4.0 SDK x86 – C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools AND C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin 64bit – C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\x64 AND C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\x86 2.0 SDK x86 – C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\bin 64bit – C:\Program Files\Microsoft.NET\SDK\v2.0 64bit\bin .NET-Framework installations x86 – C:\Windows\Microsoft.NET\Framework\version 64bit – C:\Windows\Microsoft.NET\Framework64\version
        Hide
        Lars Corneliussen added a comment -

        Spec

        • Extend npanday-settings.xsd
          • Extend xsd with npandaySettings/vendors/vendor/framework/architecture
          • Extend xsd with npandaySettings/defaultSetup/architecture
        • Extend NPanday.Plugin.Settings-Plugin
          • Fill npandaySettings/architecture (x86 / x86_64)
          • Default defaultSetup/architecture to the OS architecture
          • Find both the X86 and the 64bit versions of the Framework, and in case add both frameworks per vendor version
        • Extend Components
          • Respect frameworkArchitecture in CompilerRequirements, NetExecutableFactory, ...
        • Extend Plugins
          • Support parameter frameworkArchitecture in all Mojos using the NetExecutableFactory (aspx, compile, link, resgen, webapp, wsdl, xsd, ..?)
        • Update documentation
          • for all plugins
          • Introduce a 64bit-information-page explaining the different options and obstacles
        • Update NPanday/dotnet to consequently build for x86
        • Support dedictaded x86 test runs in maven-test-plugin, using nunit-console-x86.exe (DONE)
        Show
        Lars Corneliussen added a comment - Spec Extend npanday-settings.xsd Extend xsd with npandaySettings/vendors/vendor/framework/architecture Extend xsd with npandaySettings/defaultSetup/architecture Extend NPanday.Plugin.Settings-Plugin Fill npandaySettings/architecture (x86 / x86_64) Default defaultSetup/architecture to the OS architecture Find both the X86 and the 64bit versions of the Framework, and in case add both frameworks per vendor version Extend Components Respect frameworkArchitecture in CompilerRequirements, NetExecutableFactory, ... Extend Plugins Support parameter frameworkArchitecture in all Mojos using the NetExecutableFactory (aspx, compile, link, resgen, webapp, wsdl, xsd, ..?) Update documentation for all plugins Introduce a 64bit-information-page explaining the different options and obstacles Update NPanday/dotnet to consequently build for x86 Support dedictaded x86 test runs in maven-test-plugin, using nunit-console-x86.exe (DONE)

          People

          • Assignee:
            Lars Corneliussen
            Reporter:
            Lars Corneliussen
          • Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:

              Development