【发布时间】:2018-09-07 17:37:27
【问题描述】:
我正在尝试了解 PowerShell 中的包管理,但我得到的图片不完整。当我查看对象 PSRepository、PackageProvider 和 PackageSource 时,它们似乎都有以下关系:
-
PSRepository 可以提供零个或多个 PowerShell 模块。 PSRepository 必须有一个,并且只有一个 PackageProvider。
PSGallery是一个存储库示例。 -
PackageProvider 可以提供零个或多个 PSRepository 对象。 PackageProvider 必须具有一个或多个 PackageSource 对象。 PackageProvider 有时称为“包管理器”。包提供程序的一些示例包括
NuGet、Chocolatey或PowerShellGet。 -
PackageSource 必须提供一个且只有一个 PackageProvider。包源的一些示例包括
nuget.org、MyCustomVSTSFeed或PSGallery。
我查看了以下链接,但仍然无法清楚地了解它们之间的关系。
- 为什么 PSRepository 有一个 PackageManagementProvider 类型为 string 的属性 而不是输入 PackageProvider?
- 如果 PSRepository 已经通过其提供者获得了源引用,为什么它还有自己的 SourceLocation 属性?
- 为什么
PSGallery既是 PackageSource 又是 PSRepository? - 为什么
PowerShellGet既是提供图库访问权限的模块的名称,又是PackageProvider 的名称?
【问题讨论】:
-
也许存储库是提供者和源的组合?并且源只有提供者属性,因为源只适用于某些提供者?
-
为什么 Find-Package 不适用于 PackageSources 但 PSRepository 位置?
-
顺便说一句,他们似乎将通过 7.2 中 PowerShellGet 的主要版本更新来改变其中的一些工作方式。这是项目首席工程经理an article
-
好发现! PowerShellGet 3.0 看起来很有希望。
-
@Efie 既然 PowerShellGet 3.0 的 Preview 11 已经发布,我已经在答案中添加了一条注释。感谢您提出这个问题!
标签: windows powershell nuget package-management powershellget