powershell - 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
和*-Module
Cmdlet,因此您可以运行:
find-module *7zip*
find-package *7zip*
这里返回了相同的四个项目,但是这些 Cmdlet 指向哪里?如果您运行install-module
的是从 PowerShell 库安装的模块,并且如果您运行install-package
的是从 NuGet 安装的等效包(不是模块,而是一个包,不管它是什么!)?
任何对上述内容的澄清将不胜感激,因为我发现很难找到所有这些东西是什么以及它们如何相互作用的明确定义(事实上,什么是我安装它们的最佳方法和保养)?
解决方案
推荐阅读
- php - 写入图像文件空白页时,Fwrite 产生 0 个字节
- reactjs - 如何在 reactjs 中从 Mon Oct 01 2018 02:00:00 GMT+0530(印度标准时间)中提取时间
- file - 钴主 16 主目录中的 xxx-armdirectfb_gold_v8_startup_snapshot.bin 是什么?
- ffmpeg - 如何在 h264 中流式传输视频?
- monitoring - 是否可以根据 bash 命令的输出触发警报
- c# - UWP Grid.ContextFlyout 未打开
- c# - 如何在asp.net core 2 web api中仅验证模型状态的一部分
- node.js - 如何在 Node.js 中获取新查找的主机名的地址?
- java - 将 null 自定义注释到 Kotlin JVM
- r - 对包含函数的列表中的元素求和