Мой проект устроен так:
MyScript.ps1
classes\
Car.ps1
Tesla.ps1
Car.ps1 — это базовый класс Tesla.ps1. Я пытаюсь определить Tesla следующим образом в Tesla.ps1:
. "$PSScriptRoot\Car.ps1"
class Tesla : Car
{
}
MyScript.ps1 должен использовать класс Tesla, но не должен знать, что он наследуется от Car.
. "$PSScriptRoot\classes\Tesla.ps1"
$tesla = [Tesla]::new()
Точечный поиск classes\Tesla.ps1
работает нормально, но эта ошибка возникает из файла Tesla:
Не удалось найти тип [Автомобиль]
Если я импортирую все файлы в правильном порядке в MyScript.ps1, все работает нормально. Пример:
. "$PSScriptRoot\classes\Car.ps1"
. "$PSScriptRoot\classes\Tesla.ps1"
$tesla = [Tesla]::new()
Это громоздко, особенно по мере роста сложности. Я неправильно точечный источник? Есть ли лучший способ импортировать пользовательский класс PowerShell, используя относительный путь, которого нет в PSModulePath?