I can't confirm this:
As you can see i'm using this technique to successfully pass in the definitions parameter to a .mgcb file.
When I switch the definition from "Yes" to "No", then the test.png image gets successfully built (as expected).
Also opening / saving / building from the pipeline tool didn't change anything.
Maybe you declared the definitions also in the mgcb file? You don't need to do this. Just let them come from the MonoGameMGCBAdditionalArguments tag of you project.
This also worked for me. But you are right; as soon as you are opening and saving your mgcb file through the Pipeline Tool, then also an empty "/config:" tag gets placed inside the file, which discards every other /config: command line parameter incoming.
So indeed it is not a pratical solution to always erase the /config line from the mgcb file to make that work.
But the solution to this is indeed more obvious than we are all thinking at the moment:
Just define the /config parameter directly in the pipeline tool:
I think this shouldn't be to much work
You can then catch this in your custom processors like this:
public override string Process(string input, ContentProcessorContext context)
string config = "";
config = context.BuildConfiguration; // Get config value from the mgcb file.
context.Logger.LogMessage(config); // Log it for debugging.
// Use the config state.
if (config == "Debug")
// Debug build.
else if (config == "Release")
// Release build.