【问题标题】:Visual Studio Code Powershell extension does not recognize profile while debuggingVisual Studio Code Powershell 扩展在调试时无法识别配置文件
【发布时间】:2016-12-06 15:49:14
【问题描述】:

我将Powershell extension 用于Visual Studio Code。我更新了个人资料:

C:\Users\xxxxxxxx\Documents\WindowsPowerShell\Microsoft.VSCode_profile.ps1

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

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

【问题讨论】:

    标签: powershell visual-studio-code


    【解决方案1】:

    有几个配置文件。起点是您可以通过阅读 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 实例获得的配置文件相同。我会假设 Code 不被视为一个不同的主机,而只是运行一个普通的 powershell。 一旦你走到这一步,还有另一个可能的复杂情况,即AllUsers 配置文件在C:\Windows\System32 中下降,因此在64 位系统上,也反映在C:\Windows\SysWOW64\ 中。因此,取决于您使用的是 32 位还是 64 位编辑器,以及 Powershell 是托管在 32 位还是 64 位进程中,您正在编辑的文件很可能对 Powershell 没有影响。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        或者,您可以更改C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1 中的系统范围配置文件

        【讨论】:

        • 正如我所指出的,我在相应的配置文件中进行了更改。我宁愿不更改系统范围的配置文件。
        • 如果$profile返回路径C:\Users\xxxxxxxx\Documents\WindowsPowerShell\Microsoft.VSCode_profile.ps1,那么向VS Code团队提出一个错误:)
        • @Raf .. 或者只是点源 VSCode $profile: 中的“正确” $profile: 。 .\Microsoft.PowerShell_profile.ps1
        • 关于系统范围的 $profile,我认为当你采购更特殊的时,它是默认采购的。但是不,您必须手动获取它。
        • Here 是在 VSCode 配置文件中点缀 PS 配置文件的示例。无论哪种方式都是可能的,我决定更改和扩展 PS 文件。
        【解决方案4】:

        如果您在 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,一切就绪!

        【讨论】:

        • 不,你不会看到 VSCode_profile,否则这是一个错误,根据英国皇家空军的回答..
        猜你喜欢
        • 2023-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-01
        • 2020-04-01
        • 1970-01-01
        相关资源
        最近更新 更多