Compatibility between 32-bit, 64-bit and “Any CPU” .NET assemblies

I couldn’t find any decent .NET platform target compatibility chart, so I made one:

.NET platform compatibility charts

It’s all rather self explanatory. Green combinations, like an “Any CPU” exe file and an x86 DLL on a 32-bit OS, are compatible. Red are incompatible. The Combined Chart shows which combinations are red or green on both 32- and 64-bit OSes, while the grey fields denote combinations that differ between 32- and 64-bit OSes. I’ve completely ignored the Itanium platform target and so does everyone else these days. It’s not even an option in Visual Studio 2012.

When to select a specific platform target

Basically, the need to select another platform target than “Any CPU” arises when your assembly uses native (unmanaged) code. For a good, concise explanation of the often misunderstood platform target option in Visual Studio, I recommend DSTOKES article at Visual Studio Hacks.

As the current tablet frenzy has forced MS to stop neglecting the ARM platform, I suspect that we’ll soon see it added to the list of targets.

  1. No comments yet.

  1. No trackbacks yet.