Modifying Visual Studio solution and project files with PowerShell Modifying Visual Studio solution and project files with PowerShell powershell powershell

Modifying Visual Studio solution and project files with PowerShell


In my experience, the easiest way to manipulate Visual Studio solutions using PowerShell (from within or outside of Visual Studio) is to load the project file as XML and use PowerShell to manipulate it.

$proj = [xml](get-content Path\To\MyProject.csproj)$proj.GetElementsByTagName("PostBuildEvent") | foreach {    $_."#text" = 'echo "Hello, World!"'}$proj.Save("Path\To\MyProject.csproj")

If you're running your script in the NuGet Package Manager Console, you can get the paths to all of the project files like so:

PM> get-project -all | select -expand FileNameC:\Users\Me\Documents\Visual Studio 10\Projects\MyProject\MyProject.csprojC:\Users\Me\Documents\Visual Studio 10\Projects\MyProject\MyProjectTests.csprojPM>