You almost have it, but you should split your processor into a separate project. Getting it set up the right way is complicated the first time. We didn't really document how to do this (an oversight), but you can expect to see a blog post about it at some point.
To make it less confusing, let me explain what you should do to use a custom processor with any Xbox 360 game project (or Xbox 360 library project).
You want to have 2 projects in your solution:
- An Xbox 360 Game project which has your game code and assets.
- A Windows Game Library project which has your custom processor.
The custom processor is going to execute as part of the build, which occurs on your Windows machine. You don't implement that in an Xbox 360 project because you'll never build any content on your console.
Now, since your Xbox 360 Game project has content in it which you want to process with the processor in the second project, you need to make sure the Windows project builds first. You do that with project dependencies (not project references).
More specifically,
- Right-click on the Xbox 360 Game project node in the Solution Explorer, and select "Project Dependencies..."
- Check the box next to the Windows Game Library project.
- Click OK.
What this does is ensure that the processor project will build before the Xbox 360 game project. You don't want to add a project-to-project reference from the game to the processor because the processor is not actually used by the game code, it is used by the build.
The next thing to do is to make sure you can use the processor in the game project. You do this by adding the processor project output assembly to the list of Content Pipeline assemblies for the Xbox 360 game project:
- Build the processor project at least once.
- Double-click the Xbox 360 project's Properties node in the Solution Explorer.
- Click on the "Content Pipeline" tab.
- Click "Add..."
- Browse to the custom processor assembly and click OK.
- Close the Project Properties designer.
There, now you're pretty much set up. Whenever you build your Xbox 360 game, the environment will check to see if the content project needs to be built first. If it does, it will build, and then the Xbox 360 game project will build and the custom processor will be available.
As for working with both platforms, well, you set it up the exact same way with a Windows game project instead of the Xbox 360 project. If you want to use the same custom processor in two solutions, just add the existing project to a new solution (or just add the already-built processor assembly to the Content Pipeline Assemblies list).
There are a few more things to set up in order to handle switching configurations (Debug/Release) and platforms (x86/Xbox 360/Mixed Platforms). I won't explain that here. Instead, expect to see a blog post about it eventually.
Thanks to Joe Nalewabau (XNA Shaman) for describing these steps to me. He is going to make us simplify this a great deal in the future. ;-)
--Stephen