【问题标题】:How to ship powershell module to production environment?如何将powershell模块运送到生产环境?
【发布时间】:2012-08-17 06:25:07
【问题描述】:

我已经将我所有的 powershell 函数都写在了一个 ps1 文件中。

在另一个 ps1 文件中,它正在被点源并正在调用函数。

当我寻找更好的方法时,我开始知道将所有功能作为模块 (.psm1) 是更好的选择。

但是对于 .ps1 文件,我可以简单地将它放在一个文件夹中并发送它。

使用 .psm1 文件,它说我必须将其添加到特定位置才能导入。

那么如何向客户提供.psm1 文件呢?我们应该指示他们在使用之前复制到提到的位置吗? (如果我们不通过 msi 发货)

【问题讨论】:

    标签: powershell powershell-2.0 powershell-module


    【解决方案1】:

    从技术上讲,您可以通过路径导入 psm1 文件,但这并不是最佳的用户体验。如果将文件放在 $home\documents\WindowsPowerShell\Modules 或 $pshome\Modules 下的文件夹中,则用户可以仅根据 psm1 文件的名称进行导入。最后,您可以将 psm1 文件放在您想要的任何位置,如果您修改 PSModulePath 环境变量以包含该目录,PowerShell 将在该目录中搜索模块。

    【讨论】:

    • 至于他问题的具体部分,据我所知,这并不是真正需要的。您运行 Import-Module modulepath.psm1 而不是点源。但是,您可以将 Export-ModuleMember cmdlet 添加到 PSM1 文件中。如果这样做了,您将必须导出您希望能够导入的每个成员。如果你省略 export-modulemember 它将默认导出 PSM1 中的每个模块。
    • 如果您省略Export-ModuleMember,它将导出所有函数,但不会导出任何变量。
    猜你喜欢
    • 2017-08-27
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 2019-06-06
    • 2019-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多