Hello,
I am currently working on a game built with MonoGame and I am experiencing some sort of conflict during the build process. We are using one solution to work on all the supported platforms. Lately we had one particular conflict with the OUYA and Android builds while working directly from MonoGame source code.
Here is an excerpt of the solution content, project dependencies and the relevant build constants they define :
- GameProject_Android (refers to MonoGame.Framework.Android, defines ANDROID)
- GameProject_OUYA (refers to MonoGame.Framework.Ouya, defines ANDROID)
- MonoGame.Framework.Android (defines ANDROID)
- MonoGame.Framework.Ouya (defines ANDROID & OUYA)
Problem is that when we build GameProject_Android, it builds MonoGame.Framework.Android with the OUYA constant defined, resulting in improper MonoGame.Framework.dll to be output along with GameProject_Android.
If we build manually MonoGame.Framework.Android in the solution, it correctly builds the assembly without the OUYA constant. But as soon as we build GameProject_Android, it rebuilds MonoGame.Framework.Android with OUYA constant and copy that dll to the GameProject_Android output folder.
If we remove MonoGame.Framework.Ouya from the solution, MonoGame.Framework.Android builds fine (so there is no OUYA constant definition hidden outside of the project configuration).
We are wondering where the issue is. All projects have their own output folder, so we don't think it is a build order issue.
Is there something we are missing in our solution configuration? We didn't checked it affects other platform in the solution as only those two have common source code.
Any insight welcome. :-)