All applications built with the 1.0 and 1.1 releases of the .NET Framework are treated as 32-bit applications and are always executed under WOW64 on the 32-bit common language runtime (CLR) on a 64-bit operating system. In addition, 32-bit specific applications built with version 2.0 of the .NET Framework would run under WOW64 on 64-bit platforms.
Visual Studio will install the 32-bit version 2.0 CLR on an x86 machine, and both the 32-bit and appropriate 64-bit version 2.0 CLR on a 64-bit Windows machine. (Visual Studio 2008 is a 32-bit application and when installed on a 64-bit Windows operating system will run under WOW64.)
Note: |
|---|
Due to the design of x86 emulation and the WOW64 subsystem for the Itanium processor family, applications are restricted to execution on one processor. Single processor execution and x86 emulation reduce the performance and scalability of 32-bit .NET Framework applications running on Itanium-based systems. It is recommended that applications using the .NET Framework Version 1.1 be used for interactive, client applications, and not for applications that demand high performance or scalability, such as high-load ASP.NET applications. Consider using the .NET Framework Version 2.0, which includes native 64-bit support for Itanium-based systems, for increased performance and scalability. |
As with 32-bit Windows operating systems, there is a 2GB limit on the size of an object you can create while running a 64-bit managed application on a 64-bit Windows operating system.
In many cases, assemblies will run the same on the 32-bit or 64-bit CLR. Some reasons for a program to behave differently when run by the 64-bit CLR include:
Structs that contain members that change size depending on the platform, such as any pointer type.
Pointer arithmetic that includes constant sizes.
Incorrect platform invoke or COM declarations that use Int32 for handles instead of IntPtr.
Casting IntPtr to Int32.
For more information on porting your 32-bit application to run on the 64-bit CLR, see http://msdn.microsoft.com/library/?url=/library/en-us/dndotnet/html/64migrate.asp.