我有一个简单的(现在)模块,我计划保留各种功能,让我的生活更轻松。我的.psm1
文件目前包含一个函数,Export-ModuleMember -Function Function-Name
用于导出它。 .psd1
文件包含必需的FunctionsToExport = 'Function-Name'
行。
当我导入模块时,它不会在Get-Module
的输出中显示为ExportedCommand,即使它显示它将在Get-Module -ListAvailable
输出中导出该命令:
PS H:\> Get-Module -ListAvailable | ? {$_.Name -eq "Convenience"}
Directory: \\home\share\My Documents\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 1.0.0 Convenience Function-Name
PS H:\> Get-Module | ? {$_.Name -eq "Convenience"}
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 1.0.0 Convenience
知道如何使我的功能可用吗?
答案 0 :(得分:0)
我不知道究竟是怎么回事,但在我的模块中,我在我的psm文件中使用了这个技巧:
ls $scriptRoot\*.ps1 -recurse | foreach { . $_.FullName }
Export-ModuleMember -Function a, b, c
其中a,b和c是cmdlet,而不是函数。
答案 1 :(得分:0)
在清单中定义 RootModule
为我解决了这个问题,即在 Convenience.psd1
中:
# Script module or binary module file associated with this manifest.
RootModule = 'Convenience'
# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
FunctionsToExport = @(
Function-Name
)