Any language you like (as long as it’s at build time)

The XNA Framework only supports C#, at least if you want to run on Xbox or use the content pipeline.

Or does it?

It is true that our GSE IDE is only for C#. But content pipeline importers and processors are just regular managed assemblies, so you can build them using any .NET tool you like.

  • Create an assembly using your language and IDE of choice.
  • Add references to Microsoft.Xna.Framework.dll and Microsoft.Xna.Framework.Content.Pipeline.dll.
  • Write your importer or processor code.
  • Add this new assembly to the content pipeline assemblies list in your GSE project properties.
  • Use the new processor to prepare content for your C# game code.

Probably the most interesting option here is C++/CLI. Through various forms of compiler and runtime magic, C++/CLI makes it trivially easy for managed code to call into native libraries and manipulate native objects. Comes in handy if you want to use existing native functionality to process your game content.

In fact, we took advantage of this ourselves. Our .X and .FBX importers are written with C++/CLI, so they can easily make use of the native D3DX library and FBX SDK.

Comments (2)

  1. Doogie says:

    It may be far too late to comment on the blog now, but I'm very curious as to what processes you used to get your C++ CLR code running on the Xbox.

    Please send me an email at

  2. ShawnHargreaves says:

    We didn't run C++/CLI code on Xbox.  The Xbox portions of XNA are written in C#.  C++/CLI is used only in Content Pipeline components that run on a Windows PC at build time.

Skip to main content