【发布时间】:2016-01-24 17:08:57
【问题描述】:
我正在编写一个模块,并且我有一些我不想公开的辅助函数,但我确实希望在内部可用于模块函数。我已经设置了我的目录结构,例如:
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 函数将被导出。
通过test.psd1 中的NestedModules 属性调用私有模块和公共模块。任何帮助或指点将不胜感激。
【问题讨论】:
-
嵌套模块相互独立。如果你想从
Public使用Private,那么Public应该导入Private。 -
我不知道。我一定没有在正确的地方寻找模块文档。这给了我一些关于如何完成的想法。
标签: powershell module