Ниже представлен интересующий файл (сильно упрощенные версии):
main-func.psm1
:
function main-func
{
[CmdletBinding()]
param
()
Write-Verbose "In main-func"
main-workflow
}
workflow main-workflow
{
[CmdletBinding()]
param
()
Write-Verbose "In main-workflow"
func-outer
}
function func-outer
{
[CmdletBinding()]
param
()
Write-Verbose "In func-outer"
func-inner
}
function func-inner
{
[CmdletBinding()]
param
()
Write-Verbose "In func-inner"
}
Export-ModuleMember -function main-func
Теперь я открываю Windows Powershell и выполняю следующие команды:
> Import-Module .\main-func.psm1
> main-func -Verbose
Вывод, который я получаю, выглядит следующим образом:
VERBOSE: In main-func
VERBOSE: [localhost]:In main-workflow
VERBOSE: [localhost]:In func-outer
The term 'func-inner' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a
path was included, verify that the path is correct and try again.
+ CategoryInfo : ObjectNotFound: (func-inner:String) [func-outer], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException,func-outer
+ PSComputerName : [localhost]
Но если я заменю main-workflow
в функции main-func
на func-outer
, то это сработает.
Я новичок в Powershell и рабочих процессах, и использование рабочих процессов является обязательным требованием. Может кто-нибудь объяснить, что здесь не так?
func-inner
он еще не был объявлен. - person Matt   schedule 25.05.2015Export-ModuleMember -function main-func
запускается, все функции созданы. Это все, что имеет значение. - person beatcracker   schedule 25.05.2015