我有一个带有多个功能的psm1模块。我只想公开一些功能,所以我使用了“Export-ModuleMember -Function”,一切都很好。
现在我想添加一个清单,所以我删除了Export-ModuleMember cmdlet并将函数名放在psd1文件的FunctionsToExport部分下。
当我导入模块时,我可以选项卡完成这些功能,但当我尝试使用它们时,ps说:
测试功能:术语“测试功能”未被识别为cmdlet,函数,脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
我也尝试将Export-ModuleMember -Function *放入psm1,但这没有帮助。
psm1和psd1文件名称相同,位于模块的根目录中。
思考?感谢。
答案 0 :(得分:0)
我怀疑这里涉及PowerShell缓存机制。尝试运行:
Get-Module -ListAvailable -Refresh
我建议使用PowerShell MVP Tobias Weltner编写的very good article on that subject。
答案 1 :(得分:0)
我找到了答案。我忘记取消对RooteModule节点的评论。一旦我这样做(并将module.psm1作为值),导出的命令就出现在“Get-Module module”输出中。