首页 > 解决方案 > PowerShell 库与 NuGet 库与 MSI 与管理单元

问题描述

我对这里的差异感到很困惑,希望能得到一些澄清。

我认为在 PowerShell 1.0 中,有模块(用 PowerShell 编写的命令)和管理单元(实现 cmdlet 和提供程序的动态链接库)。但是,由于模块可以包含模块中的 Cmdlet 和函数可以调用的 DLL,因此界限变得模糊,因此最终管理单元现在实际上是多余的。

然后是 NuGet 包,它似乎是某种包部署系统(由 Microsoft 构建??)。这不像 PowerShell 库那样特定于 PowerShell,NuGet 包可以将任何类型的功能部署到 Windows 系统。将 NuGet 视为 MSI 的继任者作为包部署方法是否正确?

因此,我们有 PowerShell Gallery(仅适用于 PowerShell 模块)和 NuGet(适用于任何东西,但也包含 PowerShell)。什么是包,它与 PowerShell 上下文中的模块有何不同?

然后,我注意到 PowerShell 具有*-Package*-ModuleCmdlet,因此您可以运行:

find-module *7zip*
find-package *7zip*

这里返回了相同的四个项目,但是这些 Cmdlet 指向哪里?如果您运行install-module的是从 PowerShell 库安装的模块,并且如果您运行install-package的是从 NuGet 安装的等效包(不是模块,而是一个包,不管它是什么!)?

任何对上述内容的澄清将不胜感激,因为我发现很难找到所有这些东西是什么以及它们如何相互作用的明确定义(事实上,什么是我安装它们的最佳方法和保养)?

标签: powershellmodulenuget

解决方案


推荐阅读