Docker recipes available for Visual Studio Build Tools

Because Docker container images for Visual Studio Build Tools are very large, we have created a repository of “recipes”. These are dockerfiles and, when necessary, supporting scripts are purpose-built for solution types that require certain workloads and even other tools like package managers. I encourage developers and DevOps to take a look and even contribute… Read more

No container image for Build Tools for Visual Studio 2017

After having written documentation about installing Build Tools for Visual Studio 2017 and working with partners to set up validation starting with Visual Studio 2017 Version 15.7, a common question from customers and partners alike is: are you going to publish a container image in a Docker registry? With DockerCon 2018 in full swing, there’s… Read more

vswhere now supports -utf8 to override console code page

A new switch parameter has been introduced to vswhere. You can now pass -utf8 to force output to write text using UTF-8 to the console, though it’s important to note that what the console host does with that encoded can vary greatly. powershell.exe, for example, when redirecting to a file will always encode Unicode regardless… Read more

Updated documentation for Visual Studio Build Tools container

I’ve updated the documentation for building a Docker container image for Visual Studio Build tools based on recent feedback that managed code may fail to run. In the case of MSBuild, you might see an error like, C:\BuildTools\MSBuild\15.0\bin\Roslyn\Microsoft.CSharp.Core.targets(84,5): error MSB6003: The specified task executable “csc.exe” could not be run. Could not load file or assembly… Read more

vswhere now supports -requiresAny to find instances with one or more components installed

The latest release of vswhere.exe supports a new switch parameter, -requiresAny (case-insensitive). This switch changes the behavior of -requires to return any instances that have one or more workloads or components installed. As Visual Studio continues to add value with more features (including lots of partner content) targeting a wider variety of workloads, we made… Read more

Set both x86 and x64 registry views for custom setup policy

I previously blogged about the documentation to move the Visual Studio 2017 package cache by changing the CachePath policy. Originally this was done only with changes under the HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\VisualStudio\Setup registry key, which is defined under the usual location for server and application policies. This registry key is shared (formerly reflected) across both 32- and 64-bit… Read more

How to install Builds Tools in a Docker container

After working through a few issues, we have posted how to install Visual Studio Build Tools 2017 into a Docker container. A Build Tools container can be very useful for continuous integration / continuous delivery (CI/CD) scenarios. You can also use these same steps for Visual Studio if Build Tools does not currently have everything… Read more

New vswhere: now with more properties!

The latest release of vswhere now outputs additional properties as requested, along with catalog properties and a way to disambiguate nested properties – not that there are any currently. You can specify the nested properties followed by a property name like “properties/nickname”. Delimiters supported are “_”, “/”, and “.” to fit with the text, JSON,… Read more

Installing Build Tools for Visual Studio 2017 in a Docker container

Docker containers are a lightweight alternative to full virtual machines that abstract the file system of the host operating system but are otherwise isolated. While popular for service deployments as a complete means of acquisition, containers are also useful for isolating build and test environments. You can install Visual Studio 2017 and the Build Tools… Read more

Cleaning up corrupt Visual Studio instances

A small number of users are seeing errors after installing or modifying Visual Studio 2017 like the following, Sorry, the installation failed. Please try again. This may also manifest in some cases as, A product matching the following parameters cannot be found: channelId: VisualStudio.15.Release productId: Microsoft.VisualStudio.Product.Enterprise If you open the latest %TEMP%\dd_client*.log file you may… Read more