Я использую 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](https://i.stack.imgur.com/cWa0G.png)
, которые загрузили модуль, как и ожидалось:
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?