Hello. I’m trying to create a minimal example of a custom content pipeline extension. I’ve started with
dotnet new mgpipeline
I then created a single file containing the following:
using Microsoft.Xna.Framework.Content.Pipeline;
namespace Example{
[ContentImporter(".lua", DisplayName = "LuaImporter", DefaultProcessor = "LuaProcessor")]
public class LuaImporter : ContentImporter<string>
{
public override string Import(string filename, ContentImporterContext context)
{
return filename;
}
}
[ContentProcessor(DisplayName = "LuaProcessor")]
class LuaProcessor : ContentProcessor<string, string>
{
public override string Process(string input, ContentProcessorContext context)
{
return input;
}
}
}
This is a minimal working example. I built the project, and referenced the .dll in my .mgcb file. Correctly, I can now build “.lua” files.
However, if I just include a single line
using Microsoft.Xna.Framework.Content.Pipeline;
namespace Example{
struct A{} // <----- The problematic line
[ContentImporter(".lua", DisplayName = "LuaImporter", DefaultProcessor = "LuaProcessor")]
public class LuaImporter : ContentImporter<string>
{
public override string Import(string filename, ContentImporterContext context)
{
return filename;
}
}
[ContentProcessor(DisplayName = "LuaProcessor")]
class LuaProcessor : ContentProcessor<string, string>
{
public override string Process(string input, ContentProcessorContext context)
{
return input;
}
}
}
It simply fails to work.
MGCB Editor will say “Invalid / Missing Processor” and “Invalid / Missing Importer”.
I do not understand how defining a single struct can cause this? Am I supposed to link something else? What is going on?