🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

dotnet-vs

Package Overview
Dependencies
Maintainers
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dotnet-vs

A global tool for managing Visual Studio installations Usage: vs [command] [options|-?|-h|--help] [--save=ALIAS [--global]] Supported commands: alias Shows the list of saved aliases client Launches Visual Studio in client mode config Opens the config folder. install Installs a specific edition of Visual Studio. kill Kills running devenv processes. log Opens the folder containing the Activity.log file. modify Modifies an installation of Visual Studio. run This is default command, so typically it does not need to be provided as an argument. update Updates an installation of Visual Studio. where Locates the installed version(s) of Visual Studio that satisfy the requested requirements, optionally retrieving installation properties from it. See full documentation at https://clarius.org/dotnet-vs.

1.2.0
NuGet
Version published
Maintainers
3
Created
Source

Icon dotnet-vs

A global tool for running, managing and querying Visual Studio installations

Version Downloads License CI Status CI Version

Installing or updating (same command for both):

dotnet tool update -g dotnet-vs

To get the CI version:

dotnet tool update -g dotnet-vs --no-cache --add-source https://pkg.kzu.io/index.json

Command line parsing is done with Mono.Options so all the following variants for arguments are supported: -flag, --flag, /flag, -flag=value, --flag=value, /flag=value, -flag:value, --flag:value, /flag:value, -flag value, --flag value, /flag value.

Supported commands:

alias

Shows the list of saved aliases

Usage: vs alias [options]

All built-in commands support a -save:[alias] option that will cause the command to be saved with that alias. From that point on, it's possible to just run the command (including all saved arguments) by just running the alias instead.

Examples:

# Save the first VS enterprise with the Xamarin/Mobile workload as the "mobile" alias
> vs -sku:ent -first +mobile -save:mobile

# Runs the saved alias with all the original arguments
> vs mobile

client

Launches Visual Studio in client mode

Usage: vs client [options]
OptionDescription
rel|releaseRun release version
pre|previewRun preview version
int|internalRun internal (aka 'dogfood') version
sku:Edition, one of e|ent|enterprise, p|pro|professional, c|com|community, b|build|buildtools or t|test|testagent
filter:Expression to filter VS instances. E.g. x => x.InstanceId = '123'
firstRun first matching instance.
exp|experimentalRun experimental instance instead of regular.
w|workspaceId:The workspace ID to connect to

config

Opens the config folder.

Usage: vs config [options]
OptionDescription
rel|releaseopen release version
pre|previewopen preview version
int|internalopen internal (aka 'dogfood') version
sku:Edition, one of e|ent|enterprise, p|pro|professional, c|com|community, b|build|buildtools or t|test|testagent
filter:Expression to filter VS instances. E.g. x => x.InstanceId = '123'
firstopen first matching instance.
exp|experimentalopen experimental instance instead of regular.

install

Installs a specific edition of Visual Studio.

Usage: vs install [options]
OptionDescription
rel|releaseinstall release version
pre|previewinstall preview version
int|internalinstall internal (aka 'dogfood') version
sku:Edition, one of e|ent|enterprise, p|pro|professional, c|com|community, b|build|buildtools or t|test|testagent
filter:Expression to filter VS instances. E.g. x => x.InstanceId = '123'
add:A workload ID

You can add specific workload IDs by using the supported workload switches using the + prefix.

See the documentation for the Visual Studio installer command line options for the full list of arguments that can be provided.

Common options are --passive, quiet and --wait, for example.

Examples:

# Installs VS enterprise with the Maui/Mobile workload
# Note the -sku: switch/prefix is optional
> vs install Enterprise +mobile

# Install VS community with the .NET Core, ASP.NET and Azure workloads, 
# shows installation progress and waits for it to finish before returning
> vs install +core +web +azure

kill

Kills running devenv processes.

Usage: vs kill [options]
OptionDescription
rel|releasekill release version
pre|previewkill preview version
int|internalkill internal (aka 'dogfood') version
sku:Edition, one of e|ent|enterprise, p|pro|professional, c|com|community, b|build|buildtools or t|test|testagent
filter:Expression to filter VS instances. E.g. x => x.InstanceId = '123'
exp|experimentalkill experimental instance instead of regular.
firstkill first matching instance.
allkill all instances.

Examples:

# Kill all running instances of Visual Studio
> vs kill all

log

Opens the folder containing the Activity.log file.

Usage: vs log [options]
OptionDescription
rel|releaseopen release version
pre|previewopen preview version
int|internalopen internal (aka 'dogfood') version
sku:Edition, one of e|ent|enterprise, p|pro|professional, c|com|community, b|build|buildtools or t|test|testagent
filter:Expression to filter VS instances. E.g. x => x.InstanceId = '123'
firstopen first matching instance.
exp|experimentalopen experimental instance instead of regular.

modify

Modifies an installation of Visual Studio.

Usage: vs modify [options]
OptionDescription
rel|releasemodify release version
pre|previewmodify preview version
int|internalmodify internal (aka 'dogfood') version
sku:Edition, one of e|ent|enterprise, p|pro|professional, c|com|community, b|build|buildtools or t|test|testagent
filter:Expression to filter VS instances. E.g. x => x.InstanceId = '123'
firstmodify first matching instance.
add:A workload ID
remove:A workload ID

A shorthand notation is available for add|remove [workload ID] via the supported workload ID switches/aliases, using the + (for add) and - (for remove) prefixes.

Examples:

# Add .NET Core Workload to installed Visual Studio Preview
> vs modify preview +core

run

This is default command, so typically it does not need to be provided as an argument.

Usage: vs run [options]
OptionDescription
rel|releaserun release version
pre|previewrun preview version
int|internalrun internal (aka 'dogfood') version
sku:Edition, one of e|ent|enterprise, p|pro|professional, c|com|community, b|build|buildtools or t|test|testagent
filter:Expression to filter VS instances. E.g. x => x.InstanceId = '123'
exp|experimentalrun experimental instance instead of regular.
id:Run a specific instance by its ID
f|firstIf more than one instance matches the criteria, run the first one sorted by descending build version.
v|version:Run specific (semantic) version, such as 16.4 or 16.5.3.
w|waitWait for the started Visual Studio to exit.
nr|nodereuseDisable MSBuild node reuse. Useful when testing analyzers, tasks and targets. Defaults to true when running experimental instance.
defaultSet as the default version to run when no arguments are provided, or remove the current default (with --default-).
requires:A workload ID

All workload switches are available too to filter the instance to run, including using the + prefix/alias syntax.

This command will remember the last VS that was located and run. So the next time you can just run the same instance by simply using vs (since run is the default command and can be omitted).

Examples:

# Runs the first VS enterprise with the Maui workload
> vs -sku:ent -first +maui

# Runs VS 16.8
> vs -v:16.8

# Runs VS 16.9 preview
> vs -v:16.9 -pre

# Runs the last VS that was run
> vs

update

Updates an installation of Visual Studio.

Usage: vs update [options]
OptionDescription
rel|releaseUpdate release version
pre|previewUpdate preview version
int|internalUpdate internal (aka 'dogfood') version
sku:Edition, one of e|ent|enterprise, p|pro|professional, c|com|community, b|build|buildtools or t|test|testagent
filter:Expression to filter VS instances. E.g. x => x.InstanceId = '123'
firstUpdate first matching instance.
allUpdate all instances.

where

Locates the installed version(s) of Visual Studio that satisfy the requested requirements, optionally retrieving installation properties from it.

Usage: vs where [options]
OptionDescription
rel|releaseshow release version
pre|previewshow preview version
int|internalshow internal (aka 'dogfood') version
sku:Edition, one of e|ent|enterprise, p|pro|professional, c|com|community, b|build|buildtools or t|test|testagent
filter:Expression to filter VS instances. E.g. x => x.InstanceId = '123'
firstshow first matching instance.
prop|property:The name of a property to return
listShows result as a list
requires:A workload ID

Supports same options as vswhere.exe:

  -all           Finds all instances even if they are incomplete and may not launch.
  -prerelease    Also searches prereleases. By default, only releases are searched.
  -products arg  One or more product IDs to find. Defaults to Community, Professional, and Enterprise.
                 Specify "*" by itself to search all product instances installed.
                 See https://aka.ms/vs/workloads for a list of product IDs.
  -requires arg  One or more workload or component IDs required when finding instances.
                 All specified IDs must be installed unless -requiresAny is specified.
                 See https://aka.ms/vs/workloads for a list of workload and component IDs.
  -requiresAny   Find instances with any one or more workload or components IDs passed to -requires.
  -version arg   A version range for instances to find. Example: [15.0,16.0) will find versions 15.*.
  -latest        Return only the newest version and last installed.
  -sort          Sorts the instances from newest version and last installed to oldest.
                 When used with "find", first instances are sorted then files are sorted lexigraphically.
  -legacy        Also searches Visual Studio 2015 and older products. Information is limited.
                 This option cannot be used with either -products or -requires.
  -format arg    Return information about instances found in a format described below.
  -property arg  The name of a property to return. Defaults to "value" format.
                 Use delimiters ".", "/", or "_" to separate object and property names.
                 Example: "properties.nickname" will return the "nickname" property under "properties".
  -include arg   One or more extra properties to include, as described below.
  -find arg      Returns matching file paths under the installation path. Defaults to "value" format.
                 The following patterns are supported:
                 ?  Matches any one character except "\".
                 *  Matches zero or more characters except "\".
                 ** Searches the current directory and subdirectories for the remaining search pattern.
  -nologo        Do not show logo information. Some formats noted below will not show a logo anyway.
  -utf8          Use UTF-8 encoding (recommended for JSON).
  -?, -h, -help  Display this help message.


Extra properties:
  packages       Return an array of packages installed in this instance.
                 Supported only by the "json" and "xml" formats.

Formats:
  json           An array of JSON objects for each instance (no logo).
  text           Colon-delimited properties in separate blocks for each instance (default).
  value          A single property specified by the -property parameter (no logo).
  xml            An XML data set containing instances (no logo).

A shorthand notation is available for -requires [workload ID] via the supported workload ID switches, using the + prefix (see below).

See also vswhere on GitHub.

Workload ID switches

For commands that receive workload ID switches (i.e. vs where -requires [WORKLOAD_ID] or vs install --add [WORKLOAD_ID]), the following aliases are available:

AliasWorkload ID
mobileMicrosoft.VisualStudio.Workload.NetCrossPlat
xamarinMicrosoft.VisualStudio.Workload.NetCrossPlat
mauiMicrosoft.VisualStudio.Workload.NetCrossPlat
coreMicrosoft.NetCore.Component.DevelopmentTools
azureMicrosoft.VisualStudio.Workload.Azure
dataMicrosoft.VisualStudio.Workload.Data
desktopMicrosoft.VisualStudio.Workload.ManagedDesktop
unityMicrosoft.VisualStudio.Workload.ManagedGame
nativeMicrosoft.VisualStudio.Workload.NativeDesktop
webMicrosoft.VisualStudio.Workload.NetWeb
nodeMicrosoft.VisualStudio.Workload.Node
officeMicrosoft.VisualStudio.Workload.Office
pyMicrosoft.VisualStudio.Workload.Python
pythonMicrosoft.VisualStudio.Workload.Python
uwpMicrosoft.VisualStudio.Workload.Universal
vsxMicrosoft.VisualStudio.Workload.VisualStudioExtension

The aliases are converted to the appropriate switch automatically, such as into -requires [ID] or --add [ID]. Additionally, depending on the command being run, the aliases might use a + prefix (like +mobile), which might make for a more intuitive command line, such as vs install +mobile -sku:enterprise or vs +mobile (runs the VS with the mobile workload installed). The modify command uses + and - prefix to add or remove workloads respectively, for example.

Sponsors

Clarius Org Christian Findlay C. Augusto Proiete Kirill Osenkov MFB Technologies, Inc. Amazon Web Services SandRock David Pallmann

Sponsor this project  

Learn more about GitHub Sponsors

Keywords

FAQs

Package last updated on 18 Aug 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts