One of the features of the new setup engine is to enable Visual Studio to be installed side-by-side with other minor releases, including minor upgrades and preview releases. After introducing the Visual Studio Preview channel a short while ago, some partners asked for the ability to filter out those Preview releases from vswhere.exe. Because this is a breaking change in behavior, following semantic version guidelines I have bumped the major version to 2. I also realized that in the past I have added new features without bumping the minor version and will be more diligent going forward.
vswhere.exe version 2.0.2 released last night to nuget.org (great for automating build and test environments, which the vswhere project itself uses), chocolatey.org, and on its own GitHub release page adds a new switch parameter
-prerelease which will include prereleases like Preview builds. This will only work when using the query API version 1.11.2290 or newer, however, which is included in the logo for vswhere.exe when executed (starting with version 1.0.62). Specifically, it is included in the header after the query API is loaded, which currently for performance reasons is not when displaying the help text using the switch parameter
-help or when a syntax error is detected.
This new query API will be released in Visual Studio 2017 version 15.3.
The output of vswhere.exe when using the new query API will also include a boolean property
IsPrerelease. This is also true of the VSSetup PowerShell cmdlets, which also added a
-Prerelease switch parameter to the
Get-VSSetupInstance cmdlet. The PowerShell cmdlets also include information about the catalog that was last used to install or update the instance, including the semver
productSemanticVersion which supports the
We expect that this change in behavior will affect very few developers based on telemetry and, it seems, most desired this behavior anyway. While our Preview releases are well-tested, we want to provide our partners using vswhere.exe the ability to select releases that have been out a while.