Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 从模块导出PS成员失败_Powershell - Fatal编程技术网

Powershell 从模块导出PS成员失败

Powershell 从模块导出PS成员失败,powershell,Powershell,我有一个具有多个功能的psm1模块。我只想公开一些函数,所以我使用了“Export-ModuleMember-Function”,一切都很好 现在我想添加一个清单,所以我删除了Export-ModuleMember cmdlet,并将函数名放在psd1文件的FunctionsToExport部分下 当我导入模块时,我可以完成这些功能,但当我尝试使用它们时,ps说: 测试功能:术语“测试功能”不能识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是

我有一个具有多个功能的psm1模块。我只想公开一些函数,所以我使用了“Export-ModuleMember-Function”,一切都很好

现在我想添加一个清单,所以我删除了Export-ModuleMember cmdlet,并将函数名放在psd1文件的FunctionsToExport部分下

当我导入模块时,我可以完成这些功能,但当我尝试使用它们时,ps说:

测试功能:术语“测试功能”不能识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试

我还尝试将Export-ModuleMember-Function*放入psm1,但没有任何帮助

psm1和psd1文件的名称相同,位于模块的根目录中


想法?谢谢。

我怀疑这里涉及到PowerShell缓存机制。尝试运行:

Get-Module -ListAvailable -Refresh

我推荐由PowerShell MVP Tobias Weltner撰写。

我找到了答案。我忘了取消对RooteModule节点的注释。一旦我这样做了(并将module.psm1作为值),导出的命令就会显示在“Get module module”输出中。

我认为这与缓存无关。在manifest文件就位后,Get模块(在函数的tab完成后)将类型显示为manifest,并且没有导出的命令。如果我删除清单文件并再次删除/导入模块,我会看到类型是Script,并且我拥有导出命令列表中的所有函数(因为我在psm1中有Export ModuleMember-Function*)。我应该补充的是清单文件具有“FunctionsToExport='Test Function','Test-Function2'”,它没有按照建议进行缓存。这是预期的行为。这实际上是一个重复的问题,但我在手机上,现在找不到dup目标。