關於解決從Windows PowerShell 5.1 升級到PowerShell 7.0前後PackageManager出錯的問題.

PowerShell 是一種跨平臺的任務自動化和配置管理框架,由命令行管理程序和腳本語言組成。 與大多數接受並返回文本的 shell 不同,PowerShell 構建在 .NET 公共語言運行時 (CLR) 的基礎之上,接受並返回 .NET 對象。 這一根本上的改變引入了全新的自動化工具和方法。

新的PowerShell 7也已經支持在 macOS 和多個 Linux 發行版本上運行,已然成爲了一個跨平臺的工具.

最近,由於工作需要將Windows PowerShell 5.1升級到PowerShell 7.0,在升級過渡的過程中,發現升級後發現留存的Windows PowerShell 5.1配合Visual Studio Code使用時會出現Package Manager無法更新的問題,即使在PowerShell的ISE中也會出現(powershell的包管理器,以便於從PSGallery獲得一些功能增強性的Module).

 解決方法(替換老舊的PowerShellGet和NuGet Provider(需要手動)):

由於舊版本的PowerShellGet模塊無法通過update-module這個命令來升級或者爲PS 5.1安裝新的模塊,所以需要先安裝PS 7.0,通過PS7.0獲得新的PowerShellGet和NuGet Provider,然後替換掉PS 5.1中老的Provider就可以了.

1.首先找到Windows PowerShell 5.1的Module路徑(需要找到x86和x64的路徑),因爲Windows系統自帶PowerShell 5.1包括x86和x64. 所以這裏需要分別處理兩個不同的路徑.

2.從github下載並安裝PS7 https://github.com/PowerShell/PowerShell/releases/download/v7.0.2/PowerShell-7.0.2-win-x64.msi

安裝完成後,打開Visual Studio Code, 將自動切換到PS7的集成環境.

執行

Install-Module -Name PowerShellGet -Force -Verbose

3.安裝完成後,將PS7 Module下的Package Manager和PowerShellGet替換到PowerShell 5.1的模塊路徑中.

 

最終就都能在PS5.1和PS7中正常訪問PSGallery了.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章