我正在编写一个模块,并且我有一些我不想公开的帮助函数,但我希望在内部可以使用模块函数。我已经建立了我的目录结构,如:PowerShell模块中的内部函数
root\
..Private
....Invoke-PrivateTest.ps1
....private.psd1
....private.psm1
..Public
....Get-Something.ps1
....Public.psd1
....Public.psm1
..test.psd1
我设置GitHub上https://github.com/jpbruckler/test的存储库中有所有的模块文件。
我期待的行为是Get-Something是一个公共函数。在运行Get-Command -Module Test
时应该列出。相反,Invoke-PrivateTest
不应该在该命令的输出中。
当致电Get-Something
时,应输出文字Invoke-PrivateTest called
。相反,我收到一个错误,指出命令Invoke-PrivateTest不存在。
我在test.psd1
中明确表示只有Get-Something
函数要导出。
Private模块和公共模块都通过test.psd1
中的NestedModules
属性被调用。任何帮助或指针,将不胜感激。
嵌套模块相互独立。如果你想从'Public'使用'Private',那么'Public'应该导入'Private'。 – PetSerAl
我不知道。我不能在模块文档的正确位置查找。这给了我一些关于如何完成的想法。 –