首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Find-Package不能在我的本地程序包源上按名称找到程序包

为什么Find-Package不能在我的本地程序包源上按名称找到程序包
EN

Stack Overflow用户
提问于 2017-10-25 07:53:12
回答 2查看 2.5K关注 0票数 4

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

代码语言:javascript
复制
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不能通过名称找到它,但可以使用通配符或未指定名称来找到它:

代码语言:javascript
复制
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

虽然我可以使用nuget,但我也不能使用Install-Package安装它。

EN

回答 2

Stack Overflow用户

发布于 2018-03-24 08:09:13

Cmdlet Find-PackagePackageManagement模块的一部分,而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

票数 5
EN

Stack Overflow用户

发布于 2019-11-18 17:02:19

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

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46921743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档