diff options
Diffstat (limited to 'Rx/NET/Source/packages/Microsoft.Bcl.Build.1.0.10/tools/Uninstall.ps1')
-rw-r--r-- | Rx/NET/Source/packages/Microsoft.Bcl.Build.1.0.10/tools/Uninstall.ps1 | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Rx/NET/Source/packages/Microsoft.Bcl.Build.1.0.10/tools/Uninstall.ps1 b/Rx/NET/Source/packages/Microsoft.Bcl.Build.1.0.10/tools/Uninstall.ps1 new file mode 100644 index 0000000..204e4cc --- /dev/null +++ b/Rx/NET/Source/packages/Microsoft.Bcl.Build.1.0.10/tools/Uninstall.ps1 @@ -0,0 +1,25 @@ +param($installPath, $toolsPath, $package, $project) + + # Need to load MSBuild assembly if it's not loaded yet. + Add-Type -AssemblyName 'Microsoft.Build, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' + + # Grab the loaded MSBuild project for the project + $msbuild = [Microsoft.Build.Evaluation.ProjectCollection]::GlobalProjectCollection.GetLoadedProjects($project.FullName) | Select-Object -First 1 + + # Find all the imports and targets added by this package. + $itemsToRemove = @() + + # Allow many in case a past package was incorrectly uninstalled + $itemsToRemove += $msbuild.Xml.Imports | Where-Object { $_.Project.EndsWith($package.Id + '.targets') } + $itemsToRemove += $msbuild.Xml.Targets | Where-Object { $_.Name -eq "EnsureBclBuildImported" } + + # Remove the elements and save the project + if ($itemsToRemove -and $itemsToRemove.length) + { + foreach ($itemToRemove in $itemsToRemove) + { + $msbuild.Xml.RemoveChild($itemToRemove) | out-null + } + + $project.Save() + }
\ No newline at end of file |