Загрузите модуль 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 { - | [-аргументы] | [] } ] [-ConfigurationName] [-EncodedCommand] [-ExecutionPolicy] [-InputFormat {Текст | 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?


person craig    schedule 29.12.2018    source источник
comment
Вы пробовали указать полный путь к файлу ps1?   -  person Kory Gill    schedule 30.12.2018


Ответы (1)


Вам необходимо назначить целевой каталог проекта как «Запустить в каталоге», поскольку вы не запускаете проект, рабочая среда будет основана на среде VS4M, а оболочка не находится в проекте отладки/ вывод каталога выпуска:

введите здесь описание изображения

person SushiHangover    schedule 29.12.2018
comment
Это работает, но подсказка (PS \>), похоже, не принимает ввод. - person craig; 30.12.2018
comment
Я проверил run on external console и pause console output в Run | Конфигурация | По умолчанию. Должно ли это открыть новое окно терминала, а затем запустить pwsh? - person craig; 30.12.2018