| # ----------------------------------------------------------------------------------- |
| # |
| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to You under the Apache License, Version 2.0 |
| # (the ""License""); you may not use this file except in compliance with |
| # the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an ""AS IS"" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| # ----------------------------------------------------------------------------------- |
| |
| param($installPath, $toolsPath, $package, $project) |
| |
| if($project.Object.SupportsPackageDependencyResolution) |
| { |
| if($project.Object.SupportsPackageDependencyResolution()) |
| { |
| # Do not uninstall analyzers via uninstall.ps1, instead let the project system handle it. |
| return |
| } |
| } |
| |
| $analyzersPaths = Join-Path (Join-Path (Split-Path -Path $toolsPath -Parent) "analyzers") * -Resolve |
| |
| foreach($analyzersPath in $analyzersPaths) |
| { |
| # Uninstall the language agnostic analyzers. |
| if (Test-Path $analyzersPath) |
| { |
| foreach ($analyzerFilePath in Get-ChildItem -Path "$analyzersPath\*.dll" -Exclude *.resources.dll) |
| { |
| if($project.Object.AnalyzerReferences) |
| { |
| $project.Object.AnalyzerReferences.Remove($analyzerFilePath.FullName) |
| } |
| } |
| } |
| } |
| |
| # $project.Type gives the language name like (C# or VB.NET) |
| $languageFolder = "" |
| if($project.Type -eq "C#") |
| { |
| $languageFolder = "cs" |
| } |
| if($project.Type -eq "VB.NET") |
| { |
| $languageFolder = "vb" |
| } |
| if($languageFolder -eq "") |
| { |
| return |
| } |
| |
| foreach($analyzersPath in $analyzersPaths) |
| { |
| # Uninstall language specific analyzers. |
| $languageAnalyzersPath = join-path $analyzersPath $languageFolder |
| if (Test-Path $languageAnalyzersPath) |
| { |
| foreach ($analyzerFilePath in Get-ChildItem -Path "$languageAnalyzersPath\*.dll" -Exclude *.resources.dll) |
| { |
| if($project.Object.AnalyzerReferences) |
| { |
| try |
| { |
| $project.Object.AnalyzerReferences.Remove($analyzerFilePath.FullName) |
| } |
| catch |
| { |
| |
| } |
| } |
| } |
| } |
| } |