只有累積,沒有奇蹟

2019年5月23日 星期四

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

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

解決方案
最直覺的解決方式是透過控制台應用程式,在逐步的點選每一項進行解除安裝的動作,但如果是這樣的話大家都會也不會有這一篇的,首先先透過 command 確認目前電腦中 ASP.NET Core SDK 安裝了那些版本,可以開啟 powershell 輸入下列指令
  1. dotnet --list-sdks
會列出目前電腦中安裝的 ASP.NET Core SDK 版本與安裝路徑位置
  1. 1.1.11 [C:\Program Files\dotnet\sdk]
  2. 1.1.12 [C:\Program Files\dotnet\sdk]
  3. 1.1.13 [C:\Program Files\dotnet\sdk]
  4. 2.1.202 [C:\Program Files\dotnet\sdk]
  5. 2.1.500 [C:\Program Files\dotnet\sdk]
  6. 2.1.502 [C:\Program Files\dotnet\sdk]
  7. 2.1.504 [C:\Program Files\dotnet\sdk]
  8. 2.1.505 [C:\Program Files\dotnet\sdk]
  9. 2.1.602 [C:\Program Files\dotnet\sdk]
  10. 2.1.604 [C:\Program Files\dotnet\sdk]
  11. 2.2.105 [C:\Program Files\dotnet\sdk]
  12. 2.2.202 [C:\Program Files\dotnet\sdk]
  13. 2.2.204 [C:\Program Files\dotnet\sdk]
  14. 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
  1. $app = Get-WmiObject -Class Win32_Product | Where-Object {
  2. $_.Name -match "Microsoft .NET Core SDK"
  3. }
  4. Write-Host $app.Name
  5. Write-Host $app.IdentifyingNumber
  6. pushd $env:SYSTEMROOT\System32
  7. $app.identifyingnumber |% { Start-Process msiexec -wait -ArgumentList "/x $_" }
  8. 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

Related Posts:

  • [VS2017] The current .NET SDK does not support targeting .NET Core 2.1發生情境 最近在開發時遇到取完最新的source code Build時發生錯誤,Visual Studio error message 如下 The current .NET SDK does not support targeting .NET Core 2.1.  Either target .NET Core 2.0 or lower, or use a version of the .NET SDK that su… Read More
  • [.NETCore] 如何取得 appsettings.json 組態設定問題 在開發時有時會將資訊紀錄在 Web.Config 設定檔中的開發經驗,在 .NET Framework 要取得 web.config 自訂組態設定時可以透過  ConfigurationManager.AppSettings ,相信大家都有了解且不陌生;但今天場景換到 ASP.NET Core 時,在一開始建立好新專案後只有  appsettings.json  設定檔,那麼該如何… Read More
  • [UnitTest] ASP.NET Core 2.2 測試專案中的版本衝突 問題  這幾天專案某項功能接近尾聲,要替其核心 ASP.NET Core 專案加上單元測試專案,加入後按下建置發現跳出 Error 錯誤訊息  "CS1705 Assembly 'xxxx, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' uses 'Microsoft.Extensions.Logging.Abstractions, Version=2.… Read More
  • [.NETCore] ASP.NET Core - 使用 NLog 紀錄日誌資訊前言 在開發 .NET Framework 時候,一提到紀錄日誌的函式庫大家都會聯想到 NLog 與 Log4Net 兩種 library,兩者都是免費、OpenSource 且各有喜好者,各自提供簡單好使用的方式讓我們輕鬆地可以將需要的資訊生成相關日誌內容,從 .NET Framework 進入到 .Net Core 時代,紀錄 Application Log 勢必也是重要的功能之一,今天就要分享的是在 .NET Core … Read More
  • [.NETCore] ASP.NET Core 學習資源包 - awesome dotnetcore前言 最近比較多機會嘗試有興趣的新技術,在學習過程中勢必會遇到很多疑難雜症;像是最近新專案使用 ASP.NET Core 開發,有些觀念如果你 ASP.NET Framework 習慣了轉到新的會需要點時間,這時如果有份清單整理技術領域相關內容是在好不過的了;今天要分享的是 github 上的 awesome dotnet core,集合群眾的力量整理 ASP.NET Core 的學習資源與相關 Library 資訊,另外如果有好康的想要分享給大… Read More

0 意見:

張貼留言

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

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com