#powershell #error-handling #module
#powershell #обработка ошибок #модуль
Вопрос:
Существует ли канонический способ вызвать сбой модуля при попытке его импорта import-module
, например, из-за невыполнения определенного предварительного условия.
В настоящее время у меня есть следующие три строки в начале модуля:
if ( [IntPtr]::Size -ne 4 ) {
throw '32 bit environment required'
}
Мне интересно, есть ли лучший (или более согласованный способ) предотвратить использование модуля в 64-разрядной среде.
Ответ №1:
Мне интересно, есть ли лучший (или более согласованный способ) предотвратить использование модуля в 64-разрядной среде.
Схема манифеста модуля PowerShell содержит элемент конфигурации только для этого — ProcessorArchitecture
!
New-ModuleManifest -Path My32BitOnlyModule.psd1 -ProcessorArchitecture x86
Или, если вам нужно добавить в существующий манифест модуля:
@{
# ...
ProcessorArchitecture = 'x86'
# ...
}
Для 64-разрядных архитектур метка Amd64
Комментарии:
1. Это отличная функция. Если бы у меня было очень специфическое предварительное условие, связанное с доменом приложения, должен ли я по-прежнему использовать
throw
?2.
throw
изнутри a.psm1
во время импорта кажется мне вполне разумной временной остановкой, да! 🙂