Problem report for Windows x64 and the Microsoft .NET Framework: 32 or 64-bit?

Tekmaven   on 23 March 2005 - 17:13 · 12 comments & 6078 views

Advertisement (Why?)

The story has been reproduced below for your reference as you make a report. You may file the report below.

The Microsoft .NET Framework is the core “runtime” and libraries for all Microsoft .NET applications. On Windows x64, the Microsoft .NET Framework v1.1 will run as a 32-bit application – not as a 64-bit application. In the next release of .NET, the installer will install a native x64 version of the .NET framework, along with a 32-bit version (yes, TWO identical .NET Frameworks – one x64 and one 32-bit). To understand why Microsoft is doing this, let me explain how .NET applications really “work”.

When a developer is finished writing his application, he uses a .NET enabled compiler to compile his code into a .NET assembly (usually into a .exe or a .dll file). A .NET Assembly does not contain any architectural “machine” code, it contains “MSIL” – Microsoft Intermediate Language. When you run a .NET assembly, the .NET “CLR” – Common Language Runtime reads the MSIL and converts it into code that your architecture can understand.

With this in mind, why doesn’t .NET 1.1 run assemblies as an 64-bit process on Windows x64? The quickest answer would be, .NET 1.1 simply does not have any type of x64 support. So why not make a patch, or release an update to .NET 1.1 to make it support running 64-bit assemblies?

The answer is compatibility. In .NET, a developer can still use COM controls and make Win32 calls in their assemblies. A 64-bit application can’t host 32-Bit COM controls, and if you ran an assembly in 64-bit mode – it would have a problem if it made a 32-bit specific call.

View: Extended64


Problem Report

Please paste the problematic text into this text area.

Why is the quoted text a problem? Please type details on typos or misinformation here.

Advertisement (Why?)