启动Visual Studio for Mac时加载PowerShell模块进行调试

时间:2018-12-29 23:00:02

标签: powershell visual-studio-2017 visual-studio-mac powershell-v6.0

我正在使用Visual Studio for Mac(7.7.2;内部版本21)来使用C#创建PowerShell提供程序。

我想让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'
}

两个文件(ps1psd1)都标记为Copy to output

当我在调试模式下运行项目时,出现此错误:

  

参数'./InstallProvider.ps1'不被识别为   脚本文件。检查名称的拼写,或者路径是否为   包括在内,请验证路径正确无误,然后重试。

     

用法:pwsh [.exe] [[-File] [args]]                     [-命令{-| [-args]                                   | []}]                     [-ConfigurationName] [-EncodedCommand]                     [-ExecutionPolicy] [-InputFormat {文字| XML}]                     [-交互式] [-NoExit] [-NoLogo] [-NonInteractive] [-NoProfile]                     [-OutputFormat {文本| XML}] [-版本] [-WindowStyle]                     [-WorkingDirectory] ​​

   pwsh[.exe] -h | -Help | -? | /?
     

PowerShell联机帮助https://aka.ms/pscore6-docs

     

所有参数都不区分大小写。申请被终止   未知信号:当前平台不支持该值。   参数名称:value实际值为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 **

**编辑1 **

我在Windows的Visual Studio 2017中创建了一个类似的项目。调试设置:

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 :(得分:1)

由于您没有启动项目,因此需要将项目目标目录指定为“ 在目录中运行”,工作环境将基于VS4M的环境,并且外壳不在项目调试/发布目录输出:

enter image description here