Visual Studio Code Powershell扩展在调试时无法识别配置文件

时间:2016-12-06 15:49:14

标签: powershell visual-studio-code

我正在使用Powershell extension Visual Studio Code。我更新了个人资料:

  

C:\用户\ XXXXXXXX \文件\ WindowsPowerShell \ Microsoft.VSCode_profile.ps1

包含一些我想让其他脚本可用的函数和变量。当我从另一个脚本中的配置文件引用变量时,似乎没有加载配置文件。我怀疑这是因为当我从VS Code控制台查询它时,变量值为空。如果我使用关联的配置文件从标准Powershell控制台运行相同的测试,则解析变量值。

有人能告诉我在调试时在VS Code中使用Powershell配置文件需要做些什么吗?

4 个答案:

答案 0 :(得分:3)

有几个配置文件。起点是您可以通过阅读PowerShell内置$profile变量的以下属性找到的四个位置。

$profile.CurrentUserAllHosts
$profile.CurrentUserCurrentHost
$profile.AllUsersCurrentHost
$profile.AllUsersAllHosts

正如this article by The Scripting Guy中所述,由于Windows同时具有Powershell和Powershell ISE,因此您至少有两个可能的当前主机值,因此至少有6个配置文件。

我在Visual Studio Code终端窗口中对此进行了测试,看起来“CurrentHost”配置文件与您通过简单运行powershell实例获得的配置文件相同。我假设代码不被视为一个独特的主机,只是运行一个正常的PowerShell。 一旦你到目前为止,还有另一种可能的复杂性,即AllUsers个配置文件在C:\Windows\System32中关闭,因此在64位系统上,也在C:\Windows\SysWOW64\中镜像。因此,根据您使用的是32位还是64位编辑器,以及Powershell是以32位还是64位进程托管,您编辑的文件很可能对Powershell没有影响。

答案 1 :(得分:1)

在调试会话中运行:$profile。这将返回当前使用的配置文件的路径,因此您可以在那里进行更改。

或者,您可以在C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1

中更改系统范围的个人资料

答案 2 :(得分:1)

使用VS Code PowerShell扩展的刚刚released version 0.10.0,现在可以使用先前加载的profile.ps1进行调试。请注意,交互式控制台和调试器共享相同的PS会话。

答案 3 :(得分:1)

如果在VSCode的“ PowerShell集成控制台”中键入$ profile,您将看到所使用的配置文件的路径: C:\Users\xxx\Documents\WindowsPowerShell\Microsoft.VSCode_profile.ps1

现在,如果您在普通终端中键入$ profile,您将看到“普通”配置文件:C:\Users\xxx\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

现在,对我有用的最简单的解决方案是在两个文件之间创建硬链接(我的情况下不存在VSCode_profile.ps1文件): mklink /H Microsoft.VSCode_profile.ps1 Microsoft.PowerShell_profile.ps1

重新加载VSCode,一切就绪!