Загрузите модуль PowerShell для отладки при запуске Visual Studio для Mac
Я использую Visual Studio для Mac (7.7.2; сборка 21) для создания поставщика PowerShell с использованием C#.
Я хотел бы, чтобы IDE загрузил PowerShell для отладки.
Конфигурация запуска проекта:
- Начать внешний проект:
/usr/local/bin/pwsh
- Аргументы:
-NoProfile -NoExit -File "./InstallProvider.ps1"
InstallProvider.ps1
:
Import-Module "./PsMyModule.psd1" -Force -Verbose
PsMyModule.psd1
:
@{
# Script module or binary module file associated with this manifest.
RootModule = 'PsMyModule.dll'
}
Оба файла (ps1
, psd1
) отмечены Copy to output
,
Когда я запускаю проект в режиме отладки, я получаю эту ошибку:
Аргумент "./InstallProvider.ps1" не распознается как имя файла сценария. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку.
Использование: pwsh[.exe] [[-File] [args]] [-Command { - | [-args ] | [] } ] [-ConfigurationName ] [-EncodedCommand ] [-ExecutionPolicy ] [-InputFormat {Text | XML}] [-Interactive] [-NoExit] [-NoLogo] [-NonInteractive] [-NoProfile] [-OutputFormat {Text | XML}] [-Version] [-WindowStyle ] [-WorkingDirectory ]
pwsh[.exe] -h | -Help | -? | /?
Онлайн-справка PowerShell https://aka.ms/pscore6-docs
Все параметры чувствительны к регистру. Приложение было прервано неизвестным сигналом: текущая платформа не поддерживает это значение. Имя параметра: значение Фактическое значение было 64.
Когда я бегу pwsh
из терминала, однако, модуль, который он загрузил, как ожидалось:
~/.../bin/Debug/netstandard2.0$ pwsh -NoExit -File "./InstallProvider.ps1"
PowerShell 6.1.1
Copyright (c) Microsoft Corporation. All rights reserved.
https://aka.ms/pscore6-docs
Type 'help' to get help.
VERBOSE: Loading module from path '/Users/[user]/Projects/Visual Studio 2017/PsMyModule/bin/Debug/netstandard2.0/PsMyModule.psd1'.
VERBOSE: Loading module from path '/Users/[user]/Projects/Visual Studio 2017/PsMyModule/bin/Debug/netstandard2.0/PsMyModule.dll'.
Ни один из этих вариантов не работает либо:
-File ".\InstallProvider.ps1"
-File InstallProvider.ps1
-File "./InstallProvider.ps1"
** редактировать 0 **
Я изменил File
параметр для "/Users/[user]/Projects/Visual Studio 2017/PsMyModule/bin/Debug/netstandard2.0/InstallProvider.ps1"
PowerShell 6.1.1
Copyright (c) Microsoft Corporation. All rights reserved.
https://aka.ms/pscore6-docs
Type 'help' to get help.
Import-Module : The specified module './PsMyModule.psd1' was not loaded because no valid module file was found in any module directory.
At /Users/[user]/Projects/Visual Studio 2017/PsMyModule/bin/Debug/netstandard2.0/InstallProvider.ps1:1 char:1
+ Import-Module "./PsMyModule.psd1" -Force -Verbose
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (./PsMyModule.psd1:String) [Import-Module], FileNotFoundException
+ FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
PS />
Казалось бы, относительные пути неправильно интерпретируются. Более того, быстрое PS \>
кажется, не принимает ввод.
** / редактировать 0 **
** редактировать 1 **
Я создал аналогичный проект в Visual Studio 2017 для Windows. Настройки отладки:
который загрузил модуль как положено:
VERBOSE: Loading module from path 'C:\Users\XXX\source\repos\ClassLibrary1\ClassLibrary1\bin\Debug\netstandard2.0\FooModule.psd1'.
VERBOSE: Loading module from path 'C:\Users\XXX\source\repos\ClassLibrary1\ClassLibrary1\bin\Debug\netstandard2.0\FooModule.dll'.
PS C:\Users\XXX\source\repos\ClassLibrary1\ClassLibrary1\bin\Debug\netstandard2.0>
** / редактировать 1 **
Что мне не хватает? Чем отличается версия OS X?
1 ответ
Вам нужно назначить целевой каталог проекта как " Run in Directory ", так как вы не запускаете проект, рабочая среда будет основана на среде VS4M, а оболочка отсутствует в выходных данных каталога отладки / выпуска проекта: