Pipeline.exe and spritefonts.

I’m trying to follow this series of tutorials, but parts of them now seem a bit dated with the MG pipeline.exe replacing the XNA pipeline. Without the Visual Studio template, how do I go about converting the ttf I want to use to the spritefont so that I can build the xnb?


Okay I’ve figured out some things I was doing wrong. I’m now stuck with a .xnb that is linked to my VS project. I’ve set both ‘content’ and ‘copy if newer’ in the properties. When I build the project in pipeline I get this:

Build started 12/14/2014 5:48:19 PM

Skipping C:/Users/Viper45/documents/visual studio 2013/Projects/Game1/Game1/Content/images/avs.jpg
C:/Users/Viper45/documents/visual studio 2013/Projects/Game1/Game1/Content/fonts/basic.xnb
C:/Users/Viper45/documents/visual studio 2013/Projects/Game1/Game1/Content/fonts/basic.xnb: error: Importer 'FontDescriptionImporter' had unexpected failure!
Microsoft.Xna.Framework.Content.Pipeline.InvalidContentException: An error occured parsing. ---> System.Xml.XmlException: Data at the root level is invalid. Line 1, position 1.
   at System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
   at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.XmlReader.MoveToContent()
   at Microsoft.Xna.Framework.Content.Pipeline.Serialization.Intermediate.IntermediateSerializer.Deserialize[T](XmlReader input, String referenceRelocationPath)
   --- End of inner exception stack trace ---
   at Microsoft.Xna.Framework.Content.Pipeline.Serialization.Intermediate.IntermediateSerializer.Deserialize[T](XmlReader input, String referenceRelocationPath)
   at Microsoft.Xna.Framework.Content.Pipeline.FontDescriptionImporter.Import(String filename, ContentImporterContext context)
   at Microsoft.Xna.Framework.Content.Pipeline.ContentImporter`1.Microsoft.Xna.Framework.Content.Pipeline.IContentImporter.Import(String filename, ContentImporterContext context)
   at MonoGame.Framework.Content.Pipeline.Builder.PipelineManager.ProcessContent(PipelineBuildEvent pipelineEvent)
Build 1 succeeded, 1 failed.

Time elapsed 00:00:00.20.

Any thoughts on why i’m getting this, I’m lost.

As I typed this… it occurred to me that the pipeline builds it’s own .xnb, where I was using one I created from here.

Instead of using the above method, which caused all my problems. I Instead linked the spritefont. Then, had the pipeline build the xnb, which I then added to the content folder in VS and viola! Sorry if these questions seem noobish. Still trying to figure all this out.

Learning this has taught me a valuable lesson which I 'm curious how you guys handle. Are you linking your VS content to the …bin\Windows\Debug\Content folder or are you manually (or using scripts) moving all the xnb files once you’ve built (or rebuilt) your pipeline? Any tips and/or links to reading material on organizing this would be greatly appreciated.

I’m not sure what the preferred method is, but for non-Windows platforms you can’t just copy the files to the bin folder because they needy to have a special build action.