我一直在尝试运行PowerShell脚本,在运行时,我收到一条消息,要求NuGet提供程序。
NuGet provider is required to continue
This version of PowerShellGet requires minimum version '2.8.5.201' of NuGet provider to publish an item to NuGet-based
repositories. The NuGet provider must be available in 'C:\Program Files\PackageManagement\ProviderAssemblies' or
'C:\Users\timothy.granata\AppData\Local\PackageManagement\ProviderAssemblies'. You can also install the NuGet provider
by running 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'. Do you want PowerShellGet to install
and import the NuGet provider now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):
如果输入Y
,则返回错误:
Find-Module: NuGet provider is required to interact with NuGet-based repositories. Please ensure that '2.8.5.201' or newer version of NuGet provider is installed.
如果我尝试按照Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
的建议运行它,我也会得到一个错误:
Install-PackageProvider: Unable to find repository with SourceLocation ''. Use Get-PSRepository to see all available repositories.
型
最后,如果我运行Get-PSRepository
,也会出现错误:
Get-PackageSource: Unable to find module providers (PowerShellGet).
在我尝试调试的脚本中,触发此提示符的代码似乎是Install-AWSToolsModule SecurityToken -Force
。
if (-not (Get-Module AWS.Tools.Installer -ListAvailable)) {
Install-Module AWS.Tools.Installer -Force
}
Install-AWSToolsModule SecurityToken -Force
Get-AWSCredential -ListProfileDetail | ForEach-Object {
Remove-AWSCredentialProfile -ProfileName $_.ProfileName -Force
}
我试过:
- 重新安装PowerShell 7
- 通过运行
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
确保I am using TLS 1.2 - 以管理员身份运行PowerShell
- 在我的C:\用户\文档\WindowsPowerShell文件夹中找到Deleting the Modules folder
我不确定此时还可以尝试什么。如何安装NuGet提供程序以与PowerShell 7.3一起使用?
2条答案
按热度按时间axr492tv1#
试试看
编辑
也许试试
并确认您可以下载nuget软件包。如果可以,请尝试
型
vu8f3i0k2#
看起来OneDrive确实有什么东西把这件事抛到了九霄云外,就像我在一篇评论中想的那样。我发现this post声明(来自一些微软文档):
Windows上用户特定的CurrentUser位置是用户配置文件中Documents位置的PowerShell\Modules文件夹... Microsoft OneDrive也可以更改Documents文件夹的位置。
我运行了
$env:PSModulePath
,果然是一个OneDrive位置。最后我按照answer的建议做了,并从OneDrive中排除了PowerShell目录。这样做之后,我的脚本现在似乎可以工作了(它不会产生错误,也不会产生那个提示符)。在这样做之后,OneDrive位置仍然会从$env:PSModulePath
命令中显示出来,但我猜如果找不到目录,它福尔斯到下一个模块的位置。