Visual Studio 2019 for Mac version 8.6 is now available

Dominic Nahous

Dominic

Visual Studio 2019 for Mac version 8.6 is available today and includes an integrated terminal, support for Blazor WebAssembly, updated identity libraries, and support for building and running gRPC projects.

Are you ready for the latest version of Visual Studio 2019 for Mac? If so, version 8.6 is available for you to download today! With this release, we’ve continued to polish the existing experience, paying close attention to many of the problem areas mentioned by our users. You’ll also find some significant improvements, especially if you’re a web or mobile developer.

Be more productive using the new integrated terminal

We’re really excited about the addition of a new integrated terminal to Visual Studio for Mac. The integrated terminal will help you minimize context switching and boost your productivity. This is a full featured terminal with rich IDE and macOS integration, including:

  • Sensible defaults
  • Search
  • Integration with the Mac terminal
  • Multiple instance support
  • Configurable terminal font

Search experience in the Visual Studio for Mac Integrated Terminal

Read more about the terminal in our previous blog post.

Build Blazor WebAssembly applications

Visual Studio for Mac 8.6 also now includes templates for Blazor WebAssembly applications, including support for building Progressive Web Apps.

If you’d like to learn more, you can get started with developing Blazor WASM today by following Jon’s tutorial.

Create high performance services with gRPC

Visual Studio for Mac 8.6 includes a template for creating gRPC service projects with ASP.NET Core hosting support as well as C# tooling support for .proto files.

gRPC is a language agnostic, high-performance Remote Procedure Call (RPC) framework. The main benefits of gRPC are:

  • Modern, high-performance, lightweight RPC framework.
  • Contract-first API development, using Protocol Buffers by default, allowing for language agnostic implementations.
  • Tooling available for many languages to generate strongly-typed servers and clients.
  • Supports client, server, and bi-directional streaming calls.
  • Reduced network usage with Protobuf binary serialization.

To create a new gRPC service project, use the new gRPC template:

Support for .proto files enables you to leverage gRPC’s contract-first approach to API development. You can create or edit .proto files with editor support, and the .NET Core gRPC tools will automatically generate a service base class.

Learn more in this introduction to gRPC on .NET Core.

A more robust sign-in experience

If you’ve had issues in the past signing into Visual Studio for Mac, you’ll be pleased to know the experience is now backed by new identity libraries that will ease many of the issues you may have faced signing. With the new libraries, Visual Studio for Mac now supports device code authentication and system browser. You can enable these two options in Preferences should you need them. Do note that you’ll need to re-authenticate if you signed in previously as a result of the new authentication flow.

Drag and drop to set next statement

While the debugger is paused, an arrow in the margin shows which line of code will be executed next. You can click and drag the arrow to a different line of code to change which statement will be executed. You can achieve the same thing by also right-clicking on a line of code and selecting Set Next Statement from the context menu.

Debugger drag set next statement

Improved discoverability

In order to make the Visual Studio for Mac more discoverable, we’ve reviewed and improved version control and refactoring command names and organization.

We’ve aligned our version control commands to match standard Git terminology, e.g.

  • Select Repository becomes Clone Repository
  • Review and Commit becomes Push Changes
  • Checkout becomes Clone Repository

We also reorganized the Version Control menus to make the most commonly used commands more discoverable. Here’s how the Version Control menu looked in Visual Studio for Mac 8.5:

A screenshot of a cell phone Description automatically generated

Here’s the updated version of that menu in Visual Studio for Mac 8.6:

We also renamed the “Quick Fixes…” context menu to “Quick Actions and Refactorings…” to match the terminology on Visual Studio for Windows.

You spoke, we listened

We’ve been working hard to address issues our users encounter in Visual Studio for Mac in their average day. As part of our efforts in improving the overall experience, we’ve released a handful of new changes that address some of the top reported issues, with highest priority to unhealthy (crashing and hanging) sessions. Your bug reports are very important to us as we continue to improve the product – please keep those suggestions and problem reports coming!

Update to the latest today!

We hope you enjoy Visual Studio 2019 for Mac 8.6 as much as we enjoyed working on it. To update to this version, you can download the installer from the Visual Studio for Mac website or use the in-product updater to update an existing installation.

If you have any feedback on this, or any version of Visual Studio for Mac, please leave it in the comments below this post or reach out to us on Twitter at @VisualStudioMac. If you run into any issues while using Visual Studio for Mac, you can use Report a Problem to notify the team. In addition to reports on issues in the product, we’d also appreciate hearing from you on what’s important to you via feature suggestions on the Visual Studio Developer Community website.

3 comments

Leave a comment

  • Kunal Mehta
    Kunal Mehta

    Hello,

    I am using
    macOS Cataline version 10.15.4,
    Xcode 11.4.1 and
    Visual Studio for MAC Community 8.6

    I have created a new ios app. The Storyboard file is not loading, saying “Xcode 8.0 or newer is required to render the document”.

    Please suggest how to fix.

  • Avatar
    Claudiu Farcas

    Too bad that after this update the “Go to Declaration” and Ctrl+Click navigation does not work anymore, which makes entire IDE unusable. Also Intellisense on those members does not work. Also in “Unit Tests” pad – the menu “Show test source code” is disabled forever and not working anymore.

    • Avatar
      Claudiu Farcas

      We had this part in csproj file (and worked in previous version before update) to support mono build.

      <TargetFrameworks>netstandard2.1;net45</TargetFrameworks>
      
        <PropertyGroup Condition="$(TargetFramework.StartsWith('net4')) and '$(OS)' == 'Unix'">
          <!-- When compiling .NET SDK 2.0 projects targeting .NET 4.x on Mono using 'dotnet build' you -->
          <!-- have to teach MSBuild where the Mono copy of the reference asssemblies is -->
          <!-- Look in the standard install locations -->
          <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/Library/Frameworks/Mono.framework/Versions/Current/lib/mono')">/Library/Frameworks/Mono.framework/Versions/Current/lib/mono</BaseFrameworkPathOverrideForMono>
          <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/lib/mono')">/usr/lib/mono</BaseFrameworkPathOverrideForMono>
          <BaseFrameworkPathOverrideForMono Condition="'$(BaseFrameworkPathOverrideForMono)' == '' AND EXISTS('/usr/local/lib/mono')">/usr/local/lib/mono</BaseFrameworkPathOverrideForMono>
          <!-- If we found Mono reference assemblies, then use them -->
          <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net40'">$(BaseFrameworkPathOverrideForMono)/4.0-api</FrameworkPathOverride>
          <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net45'">$(BaseFrameworkPathOverrideForMono)/4.5-api</FrameworkPathOverride>
          <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net451'">$(BaseFrameworkPathOverrideForMono)/4.5.1-api</FrameworkPathOverride>
          <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net452'">$(BaseFrameworkPathOverrideForMono)/4.5.2-api</FrameworkPathOverride>
          <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net46'">$(BaseFrameworkPathOverrideForMono)/4.6-api</FrameworkPathOverride>
          <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net461'">$(BaseFrameworkPathOverrideForMono)/4.6.1-api</FrameworkPathOverride>
          <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net462'">$(BaseFrameworkPathOverrideForMono)/4.6.2-api</FrameworkPathOverride>
          <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net47'">$(BaseFrameworkPathOverrideForMono)/4.7-api</FrameworkPathOverride>
          <FrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != '' AND '$(TargetFramework)' == 'net471'">$(BaseFrameworkPathOverrideForMono)/4.7.1-api</FrameworkPathOverride>
          <EnableFrameworkPathOverride Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">true</EnableFrameworkPathOverride>
          <!-- Add the Facades directory.  Not sure how else to do this. Necessary at least for .NET 4.5 -->
          <AssemblySearchPaths Condition="'$(BaseFrameworkPathOverrideForMono)' != ''">$(FrameworkPathOverride)/Facades;$(AssemblySearchPaths)</AssemblySearchPaths>
        </PropertyGroup>
      

      After removing target framework net45 and change it to a lower netstandard, the intellisense and navigation started to work again (but we are not using mono explicitly anymore).

      Hope that helps others with the same issue, current VSMAC upgrade has this break change.
      Regards!