[MonoDevelop] No x64 build option

Michael Hutchinson m.j.hutchinson at gmail.com
Fri May 28 23:54:58 EDT 2010


On Thu, May 27, 2010 at 11:17 PM, BrokenKingpin
<brokenkingpin at hotmail.com> wrote:
>
> I am running Ubuntu 10.04 x64 and I have installed MonoDevelope from the
> official Ubuntu repository. After writing a small C# console app I noticed
> in the top toolbar it said Debug|x86. When I go into the build properties I
> only have the option to compile for the x86 platform, I do not see an option
> for x64. This makes no sense because I am on an 64-bit system.

The "x86" configuration is created for executable projects. Such
project have the /platform:x86 flag set in this configuration.
Although the actual IL is still platform-independent, this flag causes
.NET to use the 32-bit runtime to run the program even on 64-bit
system.

On .NET, AnyCPU libraries can be loaded by AnyCPU/x86/x64 executables,
AnyCPU executables will run by the default runtime, x64 executables
are always run by the 64-bit runtime, x86 executables are always run
by the 32-bit runtime. The flag is intended for programs and libraries
that invoke architecture-specific native dependencies.

Mono ignores the flag entirely, so "x86" programs will still run (or
fail at runtime) on 64-bit Mono.

This default behaviour was added to match Visual Studio 2010. You can
find a several blog posts on their reasons for the change. Libraries
projects still default to AnyCPU, and executable projects can of
course be changed to AnyCPU too manually.

-- 
Michael Hutchinson
http://mjhutchinson.com


More information about the Monodevelop-list mailing list