Powershell - Export-ModuleMember не работает
Я новичок в PowerShell, и я только начал создавать свой собственный модуль. Я создал файлы сценария и манифеста и поместил их в каталог C:\Program Files\WindowsPowerShell\Modules\
кто один из перечисленных $env:PSModulePath
команда.
Я также могу импортировать и удалять модуль, но он не распознается как апплет или команда, когда я пытаюсь вызвать одну из функций.
Я использую команду Import-Module:
Import-Module MyModule
Мой файл сценария выглядит примерно так:
function MyFunction() {}
Export-ModuleMember -Function *
И мой манифест выглядит так:
FunctionsToExport = '*'
Нужно ли писать все экспортированные функции в манифест?
Спасибо за помощь.
3 ответа
Итак, через несколько часов я нашел ответ: ExportedCommand пустой пользовательский модуль PowerShell
Вам нужно поставить RootModule = 'MyModule.psm1'
в манифест.
Хорошего дня!
Чтобы экспортировать все:
Манифест модуля (.psd1):
FunctionsToExport = '*'
Файл сценария модуля (.psm1):
Export-ModuleMember -Function *
Чтобы ограничить то, что экспортируется:
Манифест модуля (.psd1):
FunctionsToExport = 'Foo', 'Bar'
Файл сценария модуля (.psm1):
Export-ModuleMember -Function Foo, Bar
Обратите внимание, что если кавычки не используются таким образом, это не будет работать, и об ошибке не будет сообщено.
для меня сработало следующее (на основе ответа Mica):
- Измените RootModule, как предложено Mica в файле psd1, на файл psm1.
- Используйте команду Import-Module -Force MyModule
(с флагом '-Force': «Этот параметр вызывает загрузку или перезагрузку модуля поверх текущего», как сказано на https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/import-module?view=powershell-7.1#examples)