Hopefully, there is a simple workaround, avoiding to develop your own custom building task : using a custom build rule. Unfortunately, I was able to find one a while ago on Internet, but I lost it, and if I remember, it was lacking some features (like showing all available profiles)... So I decided yesterday to implement my own building rules files, leveraging on the existing .asm rules files that is shipped with Visual Studio, and It was surprisingly easy to write it.
To add this custom building rules to VS, follow these instructions:
- Download the fx.rules custom build rules files.
- Put the fx.rules files under in the following path (according to the installation path of your VS) :
C:\Program Files\Microsoft Visual Studio 9.0\VC\VCProjectDefaults
- Allow the use of the fx custom build rules under your project. For this, go to the solution explorer, right click on your project and select the menu "Custom Build Rules..."
- Then enable the fx rules in the "Visual C++ Custom Build Rules" window :
- Then you need to have the fxc.exe compiler in the Visual C++ path. You could add it to your system path although i prefer to add it inside VS itself. For this, go to the
Tools/Options
menu. Then go to the subtree : "Projects and Solutions/VC++ Directories". On the right pane, in "Show Directories for: " select "Executable files", and add below the path to the directory containing the fxc.exe tool. - The nice thing is that you can customize the compilation per file. Just click on the property of your ".fx" file and you will see all the fxc options :
- And you are done!
- The only drawback is that it's only working with a VC++ project, so it makes it harder to use it for a C# XNA Project, but you can create an almost empty VC++ project, add it to your solution, this c++ project would only contains links to your fx files in your C# Project (assuming that you have VS 2008 C++ and C# integrated together).
Pretty usefull. Thanks !
ReplyDeleteExcellent work both on this and the NShader Highlighter!
ReplyDeleteAny chance of converting this to work with VS2010? I'm gonna take a stab at converting the standard LC build customization to a FX build customization but I have no experience with msbuild and may fail miserably.
Wow... I haven't checked it under VS2010... so i didn't know that VS2008 custom build rules style are no longer supported... Sadly, I don't have time right now to do the conversion...
ReplyDeleteAlthough, we might follow this conversion process described here : Quick Help on VS2010 Custom Build Rule