Benefits to using the Monogame Pipeline Tool over a Monogame Content Project?

Hey there,

I switched to Monogame from XNA a while ago and along with it I had to take a roundabout route and add some content projects to get it to work. This is the tutorial I followed:

Now, I did see this thread: Monogame Content Project vs Pipeline.exe
which helped me understand a bit about why i should switch to the Pipeline.exe. However that was posted nearly a year ago now, and I’m wondering if anything has changed. The Monogame Content Projects will be removed soon? Does that mean that I’m going to be forced to switch if I want to keep up to date with Monogame builds?

I did a bit of research into how the Pipeline.exe works. It functions outside of Visual Studio. That’s handy, but right now all I have to do is drag assets into my Solution Explorer in VS under the Content project, and everything works fine. It’s very convenient, and very fast (I’m dealing with hundreds of assets and I get new ones every week for my game).

I may just be interpreting it incorrectly, but with the Pipeline.exe tool I’ll need to:

  1. Add content to the tool
  2. Build the content and turn them into .xnbs
  3. Go to Visual Studio and add the .xnbs to my Content folder (Or perhaps I can just choose the Content folder as the Output folder in Pipeline.exe?)
  4. Select all of them and change them to, “Copy if Newer” (Which is a HUGE pain if you’re using nested folders and have hundreds of assets you need to change this for)

This seems pretty inconvenient compared to the setup I have now. Am I missing something, or is it just something I’ll need to deal with to have access to the most up to date Monogame builds?

If you are using the newest version of MonoGame here is what you need to do:
When you create a template you get 1 .mgcb file in your content folder
Add all the assets you want to use to it
Build the content
That’s it, all the assets you add will automatically get copied to the output folder, you don’t need to add assets manually

Also read on adding a wildcard near bottom:

Using Visual Studio, any modified or unbuilt content will be built automatically when the VS project is built. No need to build it separately in the Pipeline Tool. This may apply to Xamarin Studio as well, but I would have to confirm that.

So if I understand this correctly…

  1. I create the template inside my game project’s “Content” folder. This is where the .mgcb file goes.
  2. I add all of my game assets to the “Content” folder
  3. In Pipeline.exe I choose the “Content” folder, and select an output folder. It then builds everything in the “Content” folder and outputs it to wherever I chose
  4. Now I can simply load assets as normal, using the output folder as the filepath because all of the .xnbs are in it now
  5. Any new assets added to the “Content” folder are automatically built when I build the VS project? Is this automatic, or a result of adding a wildcard outlined in the documentation? It sounds like this is the step that clears up any worries I had about it being inconvenient

Note: Steps 1 and 2 could be any folder that contain the assets. Might make more sense to put them inside an “Assets” folder and then output to the Content folder

Note2: This seems like it might make it so I have to select every file and change it to, “Copy if newer”, though.

That was helpful, thank you.

I was lost because I didn’t have a Content.mgcb file in my folder, due to this not being a new project. I made one and things are mostly fine now.

My last issue is that when I add new content to my Content folder (In Visual Studio, same directory as the .mgcb file) or when I update the content, it doesn’t get built. I have to open up Pipeline.exe and build that way if I want the new assets to be built. KonajuGames mentioned that there is a way to make it work. What am I missing?

Don’t add anything to the Content folder, only add it to the mgcb file, like in the video.

@KonajuGames just mentioned that the mbgc file is automatically built with the project.