【问题标题】:Use PowerShell for Visual Studio Command Prompt将 PowerShell 用于 Visual Studio 命令提示符
【发布时间】:2011-05-22 20:08:21
【问题描述】:

为了将我的所有命令行操作迁移到 PowerShell,我想避免使用老式的命令控制台来处理任何事情。但是,Visual Studio 命令提示符具有在默认命令提示符中找不到的各种环境变量和路径设置。如何使用相同的设置创建“Visual Studio PowerShell”?

【问题讨论】:

标签: windows visual-studio windows-7 powershell


【解决方案1】:

您可以使用例如this script 来导入Visual Studio 命令提示符环境,参见脚本文档cmets 中的示例,例如对于 Visual Studio 2010:

Invoke-Environment '"%VS100COMNTOOLS%\vsvars32.bat"' 

在 PowerShell 会话开始时(从您的配置文件或手动)完成此操作后,您将在此 PowerShell 会话中获得所需的内容。

或者您可以使用 Keith Hill 在this answer 提供的解决方案。

【讨论】:

    【解决方案2】:

    看看PowerConsole

    【讨论】:

    • 哎呀,@Yoni,我什至在我的笔记本电脑上安装了 PowerConsole,但自从安装后就再也没有使用过它。我想现在是个好时机。
    • PowerConsole 已合并到 NuGet nuget.codeplex.com。您可以在 Visual Studio 中获得 PowerShell 和包管理系统。
    【解决方案3】:

    PowerConsole 已合并到 NuGet http://nuget.codeplex.com/。您可以在 Visual Studio 中获得 PowerShell 和包管理系统。

    【讨论】:

      【解决方案4】:

      我使用这个我称之为 Initialize-VisualStudio.ps1 的脚本,我在我的配置文件中用点源调用它,在我的实际会话中设置需要它的环境变量:

      param([switch]$ArquitectureX86)
      if($ArquitectureX86)
      { $arq= "x86"}
      else
      { $arq="x64"}
      pushd 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC'
      cmd /c "vcvarsall.bat $arq&set" |
      foreach {
        if ($_ -match "=") {
        $v = $_.split("="); set-item -force -path "ENV:\$($v[0])" -value "$($v[1])"; 
      }
      }
      popd
      

      【讨论】:

        【解决方案5】:

        我所做的是创建一个简单的 cmd 批处理命令脚本,如下所示:

        call "%VS80COMNTOOLS%vsvars32.bat"
        powershell
        

        然后我创建一个通过 cmd 调用它的快捷方式。快捷方式目标如下所示:

        %windir%\System32\cmd.exe /k "SetupPSBuildEnvironment.cmd"
        

        如果您希望控制台看起来像 powershell 控制台,只需在快捷方式属性中根据自己的喜好修改布局即可。

        【讨论】:

          【解决方案6】:

          首先,检查这个文件夹的内容:

          C:/ProgramData/Microsoft/VisualStudio/Packages/_Instances/
          

          其中会有另一个文件夹,其名称由十六进制数字组成(例如 2a7a9ed6,但会因不同的 MSVC 版本而有所不同)。我将其称为<instance_id>

          然后从 PS 运行:

          Import-Module 'C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\Common7\Tools\Microsoft.VisualStudio.DevShell.dll'; Enter-VsDevShell <instance_id> -DevCmdArguments '-arch=x64'
          

          或者您可以使用以下target 创建快捷方式:

          <path to your powershell.exe> -noe -c "&{Import-Module """C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"""; Enter-VsDevShell <instance_id> -DevCmdArguments '-arch=x64'}"
          

          显然,如果您需要 x86 工具集,请放弃 -arch=x64

          在 Windows 10 上使用 MS Build Tools 16.9.5 和 PowerShell 5.1.19041,7.1.3 为我工作

          【讨论】:

          • 什么是1652063a
          • C:/ProgramData/Microsoft/VisualStudio/Packages/_Instances/下面有一个文件夹1652063a,你看是什么意思。我猜是微软命名事物的方式。
          猜你喜欢
          • 2011-01-08
          • 2010-11-10
          • 2018-06-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-11-08
          相关资源
          最近更新 更多