将 PowerShell 用于 Visual Studio 命令提示符

Posted

技术标签:

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

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

【问题讨论】:

How I can use PowerShell with the Visual Studio Command Prompt?的可能重复 【参考方案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,你看是什么意思。我猜是微软命名事物的方式。

以上是关于将 PowerShell 用于 Visual Studio 命令提示符的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio Code 中设置用于调试 PowerShell 的环境变量?

从PowerShell设置Visual Studio环境变量

PowerShell 脚本速度独立与 Visual Code 内

无法在 Visual Studio Code 中调试 PowerShell 脚本

Azure Service Fabric 从 Visual Studio 发布升级 - PowerShell 脚本错误

从Visual Studio Code PowerShell运行Anaconda命令