tags:

views:

48

answers:

1

I've recently been tasked with porting a large codebase of C++ code to XNA, specifically .Net v4 Client Profile. My hope was to use C++/CLI rather than translating all the code to C#, but in my feasibility tests, it looks like you can't reference non-XNA projects from XNA, and there's no way to create a C++/CLI XNA project.

I've set the C++/CLI project to target the client profile, but it still says it has an indirect dependency on mscorlib (presumably the non-client version, or it wouldn't be an error). I've also tried telling it to leave out the default libraries, to no effect.

This is with Visual Studio 2010 Professional, XNA Game Studio 4, running on Windows 7 64bit. Just in case.

Here's the error:

The primary reference "c:\...\WindowsPhoneGame2\Debug\cpptest.dll" could not be resolved because it has an indirect dependency on the framework assembly "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v4.0,Profile=Client". To resolve this problem, either remove the reference "c:\...\WindowsPhoneGame2\Debug\cpptest.dll" or retarget your application to a framework version which contains "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".

To sum up, the question is: Can I use a C++/CLI assembly from an XNA project, and how?

+1  A: 

XNA Game Studio only supports the C# language at this time. You can probably use C++/CLI on Windows, but you may run into unforeseen problems and issues because the product has not been tested with any other language.

You will not be able to use it for Windows Phone or Xbox. Some of the required support assemblies required for C++/CLI are not available in the version of the .NET CF used in Windows Phone or on the XBox.

Empyrean