我正在使用Powershell extension Visual Studio Code。我更新了个人资料:
C:\用户\ XXXXXXXX \文件\ WindowsPowerShell \ Microsoft.VSCode_profile.ps1
包含一些我想让其他脚本可用的函数和变量。当我从另一个脚本中的配置文件引用变量时,似乎没有加载配置文件。我怀疑这是因为当我从VS Code控制台查询它时,变量值为空。如果我使用关联的配置文件从标准Powershell控制台运行相同的测试,则解析变量值。
有人能告诉我在调试时在VS Code中使用Powershell配置文件需要做些什么吗?
答案 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,一切就绪!