private void CompileFile(ContentConverter converter, string originalFile) { string xnbFile = Path.ChangeExtension(originalFile, "xnb"); #if !DEBUG if (File.Exists(xnbFile) && File.GetLastWriteTimeUtc(xnbFile) > File.GetLastWriteTimeUtc(originalFile)) { return; } #endif Console.WriteLine($"\nConverting: { originalFile }"); try { string directory = Path.GetDirectoryName(originalFile); object description = converter.Importer.Import(originalFile, contentImporterContext); object content = converter.Processor.Process(description, contentProcessorContext); using (FileStream fs = new FileStream(xnbFile, FileMode.Create)) compileMethod.Invoke( contentCompiler, new object[] { fs, content, contentProcessorContext.TargetPlatform, contentProcessorContext.TargetProfile, converter.Compress, directory, directory } ); } catch (Exception e) { Console.ForegroundColor = ConsoleColor.Red; if (e is InvalidContentException ex) { converter.LogError(originalFile, ex); } else { Console.WriteLine($"{ originalFile }: error: { e.Message }"); } Console.ResetColor(); } }