You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
DS7/packages/Microsoft.Bcl.Build.1.0.14/tools/Uninstall.ps1

26 lines
1.1 KiB
PowerShell

2 years ago
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
# Normalize project path before calling GetLoadedProjects as it performs a string based match
$msbuild = [Microsoft.Build.Evaluation.ProjectCollection]::GlobalProjectCollection.GetLoadedProjects([System.IO.Path]::GetFullPath($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()
}