Загрузите модуль PowerShell для отладки при запуске Visual Studio для Mac - PullRequest
0 голосов
/ 30 декабря 2018

Я использую 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 \>, похоже, не принимает ввод.

** / edit 0 **

** edit 1 **

Я создал аналогичныйпроект в Visual Studio 2017 для Windows.Настройки отладки:

enter image description here

, которые загрузили модуль, как и ожидалось:

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>

** / edit 1 **

Чего мне не хватает?Чем отличается версия OS X?

1 Ответ

0 голосов
/ 30 декабря 2018

Вам необходимо назначить целевой каталог проекта как " Run in Directory ", так как вы не запускаете проект, рабочая среда будет основана на среде VS4M, а оболочка отсутствует в проекте.Вывод каталога отладки / выпуска:

enter image description here

...