У меня очень странное поведение в PowerShell.
Я использую следующие сценарии:
HelloWorld.psm1
:
function Write-HelloWorld {
"Hello world"
}
Export-ModuleMember -Function Write-HelloWorld
test2.psm1
:
Import-Module .\HelloWorld.psm1 -Force
test1.ps1
:
Import-Module .\HelloWorld.psm1 -Force
"Is HelloWorld loaded: " + ($null -eq (Get-Module HelloWorld))
Import-Module .\test2.psm1 -Force
"Is HelloWorld loaded: " + ($null -eq (Get-Module HelloWorld))
Когда я запускаю test1.ps1
, получается:
Is HelloWorld loaded: False
Is HelloWorld loaded: True
Модуль HelloWorld выгружается при импорте test2.psm1
.Мне это не кажется логичным ... Я понимаю, что область действия модуля HelloWorld локальна в test2.psm1
, но я ожидаю, что он не выгружает его в конце, потому что он уже был импортирован ранее.
Есть идеи?