From 76790a5af2cbaa395f2776ac25084092a8937521 Mon Sep 17 00:00:00 2001 From: Maksim Petrov <47208721+vmapetr@users.noreply.github.com> Date: Wed, 29 Apr 2020 23:06:00 +0300 Subject: [PATCH] Fix Windows Python package uninstallation (#19) --- installers/win-setup-template.ps1 | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/installers/win-setup-template.ps1 b/installers/win-setup-template.ps1 index 2868123a..4a3f8357 100644 --- a/installers/win-setup-template.ps1 +++ b/installers/win-setup-template.ps1 @@ -102,19 +102,30 @@ if (-Not (Test-Path $PythonToolcachePath)) } Write-Host "Check if current Python version is installed..." -$InstalledVersion = Get-ChildItem -Path $PythonToolcachePath -Filter "$MajorVersion.$MinorVersion.*" +$InstalledVersions = Get-Item "$PythonToolcachePath\$MajorVersion.$MinorVersion.*\$Architecture" -Write-Host "Remove registry entries for Python ${MajorVersion}.${MinorVersion}(${Architecture})..." -Remove-RegistryEntries -Architecture $Architecture -MajorVersion $MajorVersion -MinorVersion $MinorVersion +if ($null -ne $InstalledVersions) +{ + Write-Host "Python$MajorVersion.$MinorVersion ($Architecture) was found in $PythonToolcachePath..." -if (($null -ne $InstalledVersion) -and (Test-Path -Path $InstalledVersion.FullName)) { - Write-Host "Python$MajorVersion.$MinorVersion was found in $PythonToolcachePath" - Write-Host "Deleting $($InstalledVersion.FullName)..." - Remove-Item -Path $InstalledVersion.FullName -Recurse -Force -} else { + foreach ($InstalledVersion in $InstalledVersions) + { + if (Test-Path -Path $InstalledVersion) + { + Write-Host "Deleting $InstalledVersion..." + Remove-Item -Path $InstalledVersion -Recurse -Force + Remove-Item -Path "$($InstalledVersion.Parent.FullName)/${Architecture}.complete" -Force -Verbose + } + } +} +else +{ Write-Host "No Python$MajorVersion.$MinorVersion.* found" } +Write-Host "Remove registry entries for Python ${MajorVersion}.${MinorVersion}(${Architecture})..." +Remove-RegistryEntries -Architecture $Architecture -MajorVersion $MajorVersion -MinorVersion $MinorVersion + Write-Host "Create Python $Version folder in $PythonToolcachePath" New-Item -ItemType Directory -Path $PythonArchPath -Force | Out-Null