只有累積,沒有奇蹟

2019年5月23日 星期四

[NETCore] 移除未使用的 ASP.NET Core SDK

問題 
最近電腦一直跳出硬碟空間不足訊息提示,在清理硬碟的空間過程中發現電腦安裝多個版本的 ASP.NET Core SDK,身為一位專案自以為跟上技術潮流的開發人員這種狀況應該常遇到,用硬碟的空間來換取跟上潮流的速度是合情合理,但由於公司筆電硬碟空間有限口袋空空也是很苦惱,這篇文章就針對此問題的解決方式做簡單分享若是有不清楚或是錯誤的地方歡迎討論予糾正

解決方案
最直覺的解決方式是透過控制台應用程式,在逐步的點選每一項進行解除安裝的動作,但如果是這樣的話大家都會也不會有這一篇的,首先先透過 command 確認目前電腦中 ASP.NET Core SDK 安裝了那些版本,可以開啟 powershell 輸入下列指令
dotnet --list-sdks 
會列出目前電腦中安裝的 ASP.NET Core SDK 版本與安裝路徑位置
1.1.11 [C:\Program Files\dotnet\sdk]
1.1.12 [C:\Program Files\dotnet\sdk]
1.1.13 [C:\Program Files\dotnet\sdk]
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.500 [C:\Program Files\dotnet\sdk]
2.1.502 [C:\Program Files\dotnet\sdk]
2.1.504 [C:\Program Files\dotnet\sdk]
2.1.505 [C:\Program Files\dotnet\sdk]
2.1.602 [C:\Program Files\dotnet\sdk]
2.1.604 [C:\Program Files\dotnet\sdk]
2.2.105 [C:\Program Files\dotnet\sdk]
2.2.202 [C:\Program Files\dotnet\sdk]
2.2.204 [C:\Program Files\dotnet\sdk]
3.0.100-preview5-011568 [C:\Program Files\dotnet\sdk] 
在安裝 ASP.NET Core SDK 時預設安裝目錄為  C:\Program Files\dotnet\sdk  資料夾底下,因此可以透過指令的方式逐一將上述資料夾刪除,就可以達到硬碟瘦身的效果,另外發現在官方 GitHub 上也有人在討論類似的問題 How to remove old .NET Core SDKs? #2295,討論串中也有人提供 script 來自動刪除相關沒在使用的 SDK 版本,可以使用大神 SCOTT HANSELMAN 分享的 script 刪除所有的 ASP.NET Core SDK
$app = Get-WmiObject -Class Win32_Product | Where-Object { 
    $_.Name -match "Microsoft .NET Core SDK"
}
 
Write-Host $app.Name 
Write-Host $app.IdentifyingNumber
pushd $env:SYSTEMROOT\System32
 
$app.identifyingnumber |% { Start-Process msiexec -wait -ArgumentList "/x $_" }
 
popd
接著在到安裝連結 : 傳送門,重新安裝所需要的最新版 ASP.NET Core SDK 安裝包
當然,如果你想省下安裝的動作,希望在刪除時候保留最新的版本不要刪除的話,可以參考另一個版本 GitHub 連結 : 傳送門 ;安裝時分不同資料夾來區分自己覺得是常見的方式,也可以避免升級時影響到其他版本,在另一個討論串Uninstalling Visual Studio, should uninstall any .NET Core SDK that it installed #6896 也有提到在移除時也會有類似的困擾,其中有人提到 
Starting in Preview 3 of .NET Core 3.0, the Windows Installer treats each "feature band" as a single product and installs over previous copies. This means all versions of 3.0 will install over each other (preview and release), and then all versions of 3.1.
We hope to have a global tool that releases older tools later, but for now the existing SDKs must be removed by hand.
有討論才有更好的進步空間,或許在目前還需要手動更新尚未有更好的解決方案,ASP.NET Core 3.0 preview 5 已經在五月更新,希望在 3.0 正式版同時可以解決此問題 :)

參考
How to remove old .NET Core SDKs? #2295
Uninstalling Visual Studio, should uninstall any .NET Core SDK that it installed #6896

0 意見:

張貼留言

Copyright © m@rcus 學習筆記 | Powered by Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com