【问题标题】:PowerShell NuGet - "no match was found for the specified search criteria", "unable to find dependent packages", etcPowerShell NuGet - “未找到指定搜索条件的匹配项”、“无法找到依赖包”等
【发布时间】:2018-08-01 11:30:59
【问题描述】:

我试图安装程序集 System.IdentityModel.Tokens.Jwt,但我不断收到 nuget 错误:

find-package : No match was found for the specified search criteria and package name 'System.IdentityModel.Tokens.Jwt'. Try Get-PackageSource to see all available registered package sources.

当我直接下载 .nupkg 文件并尝试以这种方式安装时,我收到以下错误:

Install-Package : Unable to find dependent package(s) (Microsoft.IdentityModel.Tokens)

我做错了什么?我通常是一个 linux 人,所以我的直觉是我缺乏适当的存储库,但我不知道如何解决这个问题。

【问题讨论】:

  • 检查Get-PackageSource,因为您要查找的内容不在默认的 PSGallery 存储库中。我认为您需要先弄清楚您希望从哪里获取模块,然后您提到的任何包都会按预期解决。
  • Get-PackageSource 告诉我我只有 PowerShellGet。如何找到需要为此程序集添加的存储库?这是我遇到问题的步骤。

标签: powershell package nuget jwt


【解决方案1】:

这有点难找,但这是我的解决方案。如果Get-PackageSource告诉你没有注册为包源的NuGet那么我们先注册:

Register-PackageSource -provider NuGet -name nugetRepository -location https://www.nuget.org/api/v2

之后它应该可以工作了。

我还有另一个问题。我确实注册了 NuGet,但显然,这个 PowerShell cmdlet 预计可以与 NuGet 的 v2 API 版本一起使用,而我已经注册了 v3。有两种解决方案:要么为此重新注册正确的版本

Unregister-PackageSource -Name nuget.org(先检查名称)然后使用之前的命令注册正确的版本

在 Find(和其他)命令中明确指定正确的 API 版本:

Find-Package System.IdentityModel.Tokens.Jwt -Source https://www.nuget.org/api/v2。有一个issue on Gihub 提供了这个解决方案。

【讨论】:

    【解决方案2】:

    这对我有用:

    $_nugetUrl = "https://api.nuget.org/v3/index.json" 
    $packageSources = Get-PackageSource
    if(@($packageSources).Where{$_.location -eq $_nugetUrl}.count -eq 0)
    {
       Register-PackageSource -Name MyNuGet -Location $_nugetUrl -ProviderName NuGet
    }
    

    【讨论】:

      【解决方案3】:

      在 pwsh(powershell 核心)上,您可以将 -Source 参数中必要的包源 URL 传递给 Install-Package 命令。

      这样您就不必注册全局包源。

      例子:

      Install-Package -Force Microsoft.Azure.Kusto.Tools.NETCore `
                      -Destination "/tmp/mypackages" `
                      -Source "https://api.nuget.org/v3/index.json"
      

      【讨论】:

        猜你喜欢
        • 2020-12-02
        • 2019-11-22
        • 2021-05-18
        • 1970-01-01
        • 2020-11-04
        • 1970-01-01
        • 1970-01-01
        • 2019-05-15
        • 2014-11-28
        相关资源
        最近更新 更多