Visual Studio Developer Command Prompt and Developer PowerShell
Visual Studio includes two command-line shells for developers, a command prompt and an instance of PowerShell, as follows:
Visual Studio Developer Command Prompt - A standard command prompt with certain environment variables set to make using command-line developer tools easier.
Visual Studio Developer PowerShell - More powerful than a command prompt. For example, you can pass the output of one command (known as a cmdlet) to another cmdlet. This shell has the same environment variables set as Developer Command Prompt. Available since Visual Studio 2019.
Starting in Visual Studio 2019, Visual Studio includes an integrated terminal that can host either of these shells (Developer Command Prompt and Developer PowerShell). You can also open multiple tabs of each shell. The Visual Studio terminal is built on top of Windows Terminal. To open the terminal in Visual Studio, select View > Terminal.
Tip
This page describes how to use the command-line shells in Visual Studio. If you're looking for the equivalent in Visual Studio Code—also known as VS Code—see Command Line Interface (CLI) and Terminal Basics.
When you open one of the developer shells from Visual Studio, either as a separate app or in the Terminal window, it opens to the directory of your current solution (if you have a solution loaded). This behavior makes it convenient to run commands against the solution or its projects.
Both shells have specific environment variables set that enable you to use command-line developer tools more easily. After opening one of these shells, you can enter the commands for different utilities without having to know where they're located.
Popular commands | Description |
---|---|
MSBuild |
Build a project or solution |
dotnet |
A .NET CLI command |
dotnet run |
A .NET CLI command |
clrver |
A .NET Framework tool for CLR |
ildasm |
A .NET Framework tool for disassembler |
CL |
C/C++ compile tool |
NMAKE |
C/C++ compile tool |
LIB |
C/C++ build tool |
DUMPBIN |
C/C++ build tool |
Start in Visual Studio
Follow these steps to open Developer Command Prompt or Developer PowerShell from within Visual Studio:
Open Visual Studio.
On the menu bar, select Tools > Command Line > Developer Command Prompt or Developer PowerShell.
Start from Windows menu
Another way to start the shells is from the Start menu. You may have multiple command prompts, depending on the version of Visual Studio and any additional SDKs and workloads you've installed.
Windows 11
Select Start , and then in the Type here to search dialog box, enter either
developer command prompt
ordeveloper powershell
.Select the App result that's associated with your search text.
Windows 10
Select Start , and then scroll to the letter V.
Expand the Visual Studio 2019 or Visual Studio 2022 folder.
If you're running Visual Studio 2019, select either Developer Command Prompt for VS 2019 or Developer PowerShell for VS 2019. If you're running Visual Studio 2022, select either Developer Command Prompt for VS 2022 or Developer PowerShell for VS 2022.
Alternatively, you can start typing the name of the shell in the search box on the taskbar, and select the result you want as the result list starts to display the search matches.
Windows 8.1
Go to the Start screen, by pressing the Windows logo key on your keyboard for example.
On the Start screen, press Ctrl+Tab to open the Apps list, and then press V. This brings up a list that includes all installed Visual Studio command prompts.
If you're running Visual Studio 2019, select either Developer Command Prompt for VS 2019 or Developer PowerShell for VS 2019. If you're running Visual Studio 2022, select Developer Command Prompt for VS 2022 or Developer PowerShell for VS 2022.
Start from file browser
Usually, the shortcuts for the shells you have installed are placed in the Start Menu folder for Visual Studio, such as in %ProgramData%\Microsoft\Windows\Start Menu\Programs\Visual Studio 2019\Visual Studio Tools. But if searching for the command prompt doesn't produce the expected results, you can try to manually locate the files on your machine.
Developer Command Prompt
Search for the name of the command prompt file, which is VsDevCmd.bat, or go to the Tools folder for Visual Studio, such as %ProgramFiles%\Microsoft Visual Studio\2022\Community\Common7\Tools (the path changes according to your Visual Studio version, edition, and installation location).
Once you've located the command prompt file, open it by entering the following command in a regular command prompt window:
"%ProgramFiles%\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
Or enter the following command in the Windows Run dialog box:
%comspec% /k "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
"%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat"
Or enter the following command in the Windows Run dialog box:
%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat"
Since Visual Studio 2015, the Developer Command Prompt sets the VSCMD_VER
environment variable which contains the version information for Visual Studio (ex: 17.9.0
). If you need to detect whether the Developer Command Prompt has already been run in your console, it is recommended to check whether VSCMD_VER
has been defined or not.
Tip
Make sure to edit the path to match the version or edition of Visual Studio that you're using.
Developer PowerShell
Search for a PowerShell script file named Launch-VsDevShell.ps1, or go to the Tools folder for Visual Studio, such as %ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\Common7\Tools. (The path changes according to your Visual Studio version, edition, and installation location.) Once you've located the PowerShell file, run it by entering the following command at a Windows PowerShell or PowerShell 6 prompt.
For Visual Studio 2022:
& 'C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\Launch-VsDevShell.ps1'
For Visual Studio 2019:
& 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\Launch-VsDevShell.ps1'
By default, the Developer PowerShell that launches is configured for the Visual Studio installation whose install path the Launch-VsDevShell.ps1 file is located in.
Tip
The execution policy must be set in order for the cmdlet to run.
The Launch-VsDevShell.ps1
script works by locating the Microsoft.VisualStudio.DevShell.dll
PowerShell module in the Visual Studio installation path, loading it, and then invoking the Enter-VsDevShell
cmdlet. Installed shortcuts, like those in the Start menu, load the module and invoke the cmdlet directly. Launch-VsDevShell.ps1
is the recommended way to initialize Developer PowerShell interactively or for scripting build automation.
Command-line arguments
You can use command-line arguments for either of the shells, Developer Command Prompt or Developer PowerShell.
Target Architecture and Host Architecture
For build tools -- like the C++ compiler -- that create outputs targeting specific CPU architectures, the developer shells can be configured using the appropriate command-line argument. The architecture of the build tool binaries can also be configured by using command-line arguments. This is useful when the build machine is a different architecture than the target architecture.
Tip
Beginning with Visual Studio 2022, msbuild
will default to a 64-bit msbuild.exe binary, regardless of the Host Architecture.
Shell | Argument |
---|---|
Developer Command Prompt | -arch=<Target Architecture> |
Developer Command Prompt | -host_arch=<Host Architecture> |
Developer PowerShell | -Arch <Target Architecture> |
Developer PowerShell | -HostArch <Host Architecture> |
Important
Developer PowerShell arguments -Arch and -HostArch are only available beginning with Visual Studio 2022 version 17.1.
The following table lists which architectures are supported, and whether they can be used for Target Architecture or Host Architecture arguments.
Architecture | Target Architecture | Host Architecture |
---|---|---|
x86 | Default | Default |
amd64 | Yes | Yes |
arm | Yes | No |
arm64 | Yes | No |
Tip
If you set only Target Architecture, the shells attempt to make the Host Architecture match. This can result in errors when only the Target Architecture is set to a value that's not also supported by Host Architecture.
Examples
Start the Developer Command Prompt for Visual Studio 2019 Community Edition on a 64-bit machine, creating build outputs that target 64-bit:
"%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat" -arch=amd64
Start the Developer Command Prompt for Visual Studio 2019 Community Edition on a 64-bit machine, creating build outputs that target arm:
"%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat" -arch=arm -host_arch=amd64
Start the Developer PowerShell for the Community Edition of Visual Studio 2022 version 17.1 or later on a 64-bit machine, creating build outputs that target arm64:
& 'C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\Launch-VsDevShell.ps1' -Arch arm64 -HostArch amd64
SkipAutomaticLocation
For Developer PowerShell, the starting directory of the shell is the Visual Studio Project Location. This default locale overrides any other paths, such as working directory. This behavior can be turned off by using the command-line argument -SkipAutomaticLocation
. This can be useful if you want the shell to stay in the current directory after initialization.
The Project Location can be adjusted in Tools > Options > Projects & Solutions > Project Location.
Tip
The command-line arguments -Arch
, -HostArch
, and -SkipAutomaticLocation
are supported by both the Launch-VsDevShell.ps1
script and the Enter-VsDevShell
cmdlet.