为什么Find-Package无法在我的本地包源上按名称查找包

问题描述 投票:4回答:1

我有一个本地包源来搞乱一些事情。我创建了一个名为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

powershell package-managers powershellget
1个回答
3
投票

Cmdlet Find-Package是PackageManagement模块的一部分,而Nuget.exePackageManagement模块的十几个包提供者之一。

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

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

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


现在Find-Package可以搜索,Install-Package可以从新注册的包源安装包。可以检索已知包源的完整列表

Get-PackageSource

© www.soinside.com 2019 - 2024. All rights reserved.