关于解决从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了.

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