Perform XSLT Transform as Build-Step

Brent Arias picture Brent Arias · Aug 5, 2011 · Viewed 6.9k times · Source

During a Visual Studio build, I need to have an XML file generated from another XML file. It is obvious to me an XSLT template and transform is exactly what I need.

The way I prefer to accomplish this is to use the "Custom Tool" property found on project files. Is there already a built-in tool I can use for this purpose? My next option might be to use a pre-build step of the csproj. Again, is there a (Visual Studio or MSBUILD) pre-existing or pre-installed tool that I can invoke from a pre-build step to do this?

Finally, if need be, I could have modify the .csproj file itself to add a MSbuild Task which performs the transform (I think MSBuild comes with such a Task - if not I know they are available for download).

Overall, I'd just like to know the easiest way to get this done, and how to do it. I already know how to write XSL templates. :)

Answer

Thomas Gerstendörfer picture Thomas Gerstendörfer · Aug 8, 2011

If you're using VS2010 you can use the built-in XslTransformation task of MSBuild 4 in a post build step.

<Target Name="AfterBuild">
  <XslTransformation
    XslInputPath="transform.xslt"
    XmlInputPaths="in.xml"
    OutputPaths="out.xml" />
</Target>