如何导入带有清单的模块

How to import a module with a manifest

Powershell 今天真的在考验我的耐心...好吧,所以我做了一个清单来获取我需要的程序集。现在,当我有 *.psm1 和 *.psd1 文件时如何正确导入。

文件夹路径:C:\mypath\blah\blah\Module\Format-XML\

文件夹中的文件:格式-XML.psd1,格式-XML.psm1

Import-Module -Name "C:\mypath\blah\blah\Module\Format-XML\Format-XML"

然后,当我在从另一个脚本调用的模块中使用我的函数时,无论出于何种原因,都没有 exist/work。我做错了什么?

[错误] 动词-名词:术语 'VERB-NOUN' 未被识别为

的名称

[错误] cmdlet、函数、脚本文件或可运行的程序。检查

的拼写

[错误] 名称,或者如果包含路径,请验证路径是否正确,然后重试。

在*.psd1:

FunctionsToExport = '*'

在 *.psm1 中:

#I know... not required but I tried anyways... :(
Export-ModuleMember -Function '*'

查看导入的模块。您可以通过两种方式做到这一点:

导入后:

$mod = Get-Module -Name Format-XML

导入期间:

$mod = Import-Module -Name "C:\mypath\blah\blah\Module\Format-XML\Format-XML" -PassThru

然后你可以检查$mod并查看.ExportedCommands 属性。是否列出了任何内容?

同时尝试删除第二个 Format-XML(我假设最后一个组件指的是模块本身而不是文件夹)。

回答:不要忘记在清单中设置根模块...叹息

因此需要将以下代码添加到您的 psd1 中。

# Script module or binary module file associated with this manifest.
RootModule = 'nameOfYourModule.psm1'