4

我有一个本地包源来处理一些事情。我创建了一个名为 的脑死包CoolUtils,使用nuget add. 您可以使用 nuget 找到它:

PS> nuget list -source E:\nuget-repo-test-01\
CoolUtils 2.0.20171024.1

PS> nuget list coolutils -source E:\nuget-repo-test-01\
CoolUtils 2.0.20171024.1

但是,Find-Package无法通过名称找到它,但可以使用通配符或未指定名称找到它:

PS> Find-Package -Source E:\nuget-repo-test-01\

Name                           Version          Source                           Summary
----                           -------          ------                           -------
CoolUtils                      2.0.20171024.1   E:\nuget-repo-test-01\           Test package with dumb scripts.

PS> Find-Package *cool* -Source E:\nuget-repo-test-01\

Name                           Version          Source                           Summary
----                           -------          ------                           -------
CoolUtils                      2.0.20171024.1   E:\nuget-repo-test-01\           Test package with dumb scripts.

PS> Find-Package CoolUtils -Source E:\nuget-repo-test-01\
Find-Package : No match was found for the specified search criteria and package name 'CoolUtils'. Try Get-PackageSource to see all available registered package sources.
At line:1 char:1
+ Find-Package CoolUtils -Source E:\nuget-repo-test-01\
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Microsoft.Power...ets.FindPackage:FindPackage) [Find-Package], Exception
    + FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.FindPackage

我也无法使用 安装它Install-Package,尽管我可以使用nuget.

4

2 回答 2

5

CmdletFind-PackagePackageManagement模块的一部分,同时Nuget.exe也是众多模块包提供者之一PackageManagement

一个类比(不完全正确)是应用程序和插件: Nuget就像一个为其应用程序提供功能的插件(以及 PackageManagementFind-Package中的Install-Package其他 cmdlet)。

尽管Nuget可以执行一些包管理任务,但为了在标准化PackageManagement命令的控制下工作,您应该正确声明(“注册”)nuget 的包位置以使其为人所知PackageManagement

Register-PackageSource -name MyPackages -location E:\nuget-repo-test-01 -provider Nuget


现在可以从新注册的包源Find-Package中搜索并安装包。可以通过以下方式检索已知包源的完整列表Install-Package

Get-PackageSource

于 2018-03-24T00:09:13.313 回答
0

我遇到了同样的问题,并通过将 .nupkg 文件移动到注册的本地包源的根目录来解决它,即“C:\projects\packages\”

PS> Get-PackageSource -Name Local

Name                             ProviderName     IsTrusted  Location
----                             ------------     ---------  --------
Local                            NuGet            False      C:\projects\packages\

PS> Find-Package -Source Local -Name TestCmdlet

Name                           Version          Source           Summary
----                           -------          ------           -------
TestCmdlet                     1.0.0            Local            Package Description
于 2019-11-18T09:02:19.020 回答