title: I want to create a tool that manipulates C# project files
body: <p>(Basically we want to import targets files at some places in the *.csproj file and otherwise check that the file follows our standards)</p>
  
  <p>What is the best way of doing this? I am planning to use C# and XDocument (LINQ to XML) and manipulated the nodes. But is that the best way? Other alternates may be:</p>
  
  <ol>
  <li>Find the XSD for csproj/msbuild and create stronly typed objects that represent the project file. is this possible?</li>
  <li>Are there other tools/languages that are better (It could use this as an excuse to learn Ruby). An answer would have to have some links to examples for manipulating XML.</li>
  </ol>
  
  <p>Maybe the real question is: What is the best way to read and manipulate XML programatically? </p>