Visual Studio 2019 for Mac version 8.9 is now available

Jon

We’re excited to announce that Visual Studio 2019 for Mac version 8.9 is available for you to download today. This release includes support for .NET 6 Preview 1, testing support for Unity applications, a preview of a new Quick Actions and Refactorings dialog, solution filter (.slnf file) support, and a new XML editor.

Watch the overview on Visual Studio Toolbox Live!

Get an overview of Visual Studio for Mac and demos of all the new features from PM team on Visual Studio Toolbox.

.NET 6 Preview 1 Support

.NET 6 is the next release of .NET, planned for release in November 2021. It’s shaping up to be an exciting release, with a number of great new features and capabilities for .NET developers. Visual Studio for Mac 8.9 supports the first preview release of .NET 6. For more information, see the announcement post on the .NET blog.

Run and debug Unity tests

We listened to your feedback about wanting the ability to work with unit tests directly inside VS for Mac with your Unity projects. We’re happy to share that Visual Studio for Mac 8.9 includes support for discovering, running, and debugging Unity tests.

Unity Test Runner shown in Visual Studio for Mac

Support for unit tests in Visual Studio for Mac currently require that you use Unity 2020 or newer and update the Visual Studio Editor package to version 2.0.7 or newer via the Unity Editor > Window > Package Manager menu.

Open your project in Visual Studio for Mac from Unity using the Assets > Open C# Project menu. In Visual Studio for Mac, use the View > Tests menu to show any unit tests in your project. You can run and debug tests from this tool window. To see the results, use the View > Other Windows > Test Results menu.

Quickly find Unity objects while debugging

The Tools for Unity in Visual Studio for Mac includes a debugger optimized for Unity projects and it just got better. We’ve looked at the common information developers care about when debugging Unity projects and made that simpler to find in the Locals tool window. Now, when inspecting code on a breakpoint you’ll find all the objects in the current scene under the Active Scene node.

Visual Studio for Mac Locals tool window displaying Unity objects in the current scene
We’ve looked at the common information developers care about when debugging Unity projects and made that simpler to find in the Locals tool window. Now, when inspecting code on a breakpoint you’ll find all the objects in the current scene under the Active Scene node.

If you’re searching for any components related to the current gameObject, those can be found in the this.gameObject node.

Visual Studio for Mac showing Unity objects in the Locals tool window

Preview of a new Quick Actions and Refactorings menu

This release includes a preview of a new Quick Actions and Refactorings menu, which you see if you’re apply suggested code fixes or refactoring to your code. This change stems from work we’ve been doing to improve the accessibility of the IDE and we’re experimenting to see how well this works for improving the overall experience for developers.

Visual Studio for Mac showing the preview Quick Actions and Refactorings menu

This is an early preview at the moment, with more UI changes to come; and we’d appreciate any feedback you have. To try it out, you can go to the Visual Studio > Preferences… > Preview Features settings and enable the New Light Bulb dialog option.

Visual Studio for Mac Preferences window, showing the Preview Features tab

You can turn it on or off without restarting or having to close your code editor.

New Quick Actions and Refactorings

In addition to the preview menu experience explained above,

Visual Studio for Mac 8.9 introduces several useful new actions to Quick Actions and Refactorings to help you write great code faster.

Quick Info now displays compiler warning IDs or numbers for suppressions. Hover your cursor over the warning IDs or numbers to view Quick Info for the diagnostic ID.

Visual Studio for Mac showing Quick Info for displays compiler warning IDs or numbers for suppressions

There is now IntelliSense completion for preprocessor symbols. Start typing the #if directive and notice the new completion options for symbols that are currently defined in scope.

Visual Studio for Mac IntelliSense completion for preprocessor symbols

The following additional Quich Actions and Refactorings are also included:

  • Remove redundant equality
  • Convert regular and verbatim string to interpolated string
  • Remove unnecessary discard

New XML Editor

Throughout the past few releases, we’ve been continuously migrating user interface elements to macOS-native experiences. This provides a number of benefits including accessibility, performance, and stability. Visual Studio for Mac 8.9 includes a number of updated windows, including the Immediate Window and Git Blame view. The biggest update in this area is the new XML Editor.

The new XML Editor builds on top of our modern editor experience in Visual Studio for Mac, which means that it is able to share code with Visual Studio on Windows for common features like IntelliSense, text logic, and language services.

Visual Studio for Mac modern editor architecture

Updating the XML Editor bring several new features, including multi-carat support, ligature support, and improved comment/uncomment support.

Solution Filter (.slnf) Support

In this release of Visual Studio for Mac, we’ve added a popular request: support for solution filtering. Solution filtering lets you open a solution with only selective projects loaded. Loading a subset of projects in a solution decreases solution load, build, and test run time, and enables more focused review. We use solution filtering extensively in the .NET source code, and we think this will be really useful to you, too.

Visual Studio for Mac Solution Filter (.slnf) support

Xamarin.Forms

Xamarin.Forms “changes only” XAML Hot Reload is now GA quality, no longer in preview. Apps targeting Xamarin.Forms 5.0 or newer will use this new mode by default.

The new “changes only” XAML Hot Reload mechanism makes it possible to update your running app’s UI in real-time and see those changes reflected immediately without requiring the full page to be reloaded, and without having to save the file. “Changes only” Hot Reload also supports the Live Visual Tree, so you can see the runtime UI hierarchy for your app and easily navigate to your XAML source code.

Xamarin Forms Live Visual Tree shown in Visual Studio for Mac

For those customers who prefer to continue to use the older “full page” Hot Reload you can still do so even for projects targeting Xamarin.Forms SDK v5 by going to the Hot Reload settings under Visual Studio > Preferences > Tools for Xamarin > XAML Hot Reload.

As we work to bring you the new .NET Multi-platform App UI, our recommendation continues to be building Xamarin.Forms applications so you can smoothly upgrade them to .NET MAUI when it becomes available. Visual Studio for Mac supports the latest Xamarin.Forms 5 updates, and we’ll be working to light up .NET MAUI development experiences as they become available.

Apple M1 support via Rosetta 2

We know you’re excited about the Apple M1 chip, and we are too! While we expect to offer native support for M1 and Apple Silicon in the future, our first step to M1 support is via the Rosetta 2 translation layer. In our testing, M1 support is working pretty well as of Big Sur 11.2 (which included some fixes for .NET Core support). You can continue to monitor our support for M1, and report any issues you encounter, via the Developer Community issue.

Keep sending us your feedback!

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 on improving the overall experience, we’ve released a handful of new changes that address some of the top reported issues, with highest priority given 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.9 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.

4 comments

Comments are closed. Login to edit/delete your existing comments

  • Piotr Karczmarz

    Is it possible that after introducing Shared VS Editor API for both Windows and Mac VS versions similar thing will happen for the API at higher UI level? I am talking about scenario like:

    1. Opening Document Tab (via e.g. VsShellUtilities.OpenDocument on VS for Windows)
    2. Docking selected/newly opened Document Tab to selected Floating Window
    3. Changing floating/main window orientation to vertical/horizontal
    4. Pinning/unpinning Document Tab
    5. Changing size and position for main/floating window
    6. Changing Document Tab size when docked (via WPF’s SplitterLength)
    7. Setting breakpoints/bookmarks in the selected Document Tab

    Those are integration points for VS plugin (ContextKeeper.io) that I am developing. It works for the VS but porting it to VS for Mac will be impossible without something like shared “Windows API”. It would be great if public “Windows API” surface could be possible for both VS for Windows and Mac in a similar fashion like for Editor UI. That will allow to implement above workflow for both platforms seamlessly.

    Is it possible that the VS Team could share public roadmap what is planned for VS Extensions APIs? The VS Extensions developers are eager to know what is planned – the comments section in the The Future of Visual Studio Extensions article clearly show the demand.


    Piotr Karczmarz, CTO at ContextKeeper.io, building VS plugin allowing to jump to deep work quicker via “mental snapshots”.

  • Mark Fredrickson

    Not sure if this is the right place but I just updated to 8.9 and now I can’t build my app. The error message is below but I really need to get it built (production) so would like to either get this resolved right away or revert back to the previous version. Is reverting back possible?

    /Users/Administrator/Desktop/Development/BlueFire/Xamarin/Motorhomes/Motorhomes/Motorhomes.iOS/MTOUCH: Error MT2101: Can’t resolve the reference ‘System.Void System.Security.Cryptography.DSACng::.ctor(System.Security.Cryptography.CngKey)’, referenced from the method ‘T Internal.Cryptography.Pal.Windows.PkcsPalWindows::GetPrivateKey(System.Security.Cryptography.X509Certificates.X509Certificate2,System.Boolean,System.Boolean)’ in ‘System.Security.Cryptography.Cng, Version=4.3.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’. (MT2101) (Motorhomes.iOS)

    Interesting that I received the following warnings:

    MTOUCH : warning MT0109: The assembly ‘System.Security.Cryptography.Algorithms.dll’ was loaded from a different path than the provided path (provided path: /Users/Administrator/.nuget/packages/system.security.cryptography.algorithms/4.3.1/runtimes/win/lib/netstandard1.6/System.Security.Cryptography.Algorithms.dll, actual path: /Library/Frameworks/Xamarin.iOS.framework/Versions/14.14.2.5/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Algorithms.dll).

    MTOUCH : warning MT0109: The assembly ‘System.Security.Cryptography.Encoding.dll’ was loaded from a different path than the provided path (provided path: /Users/Administrator/.nuget/packages/system.security.cryptography.encoding/4.3.0/runtimes/win/lib/netstandard1.3/System.Security.Cryptography.Encoding.dll, actual path: /Library/Frameworks/Xamarin.iOS.framework/Versions/14.14.2.5/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.Encoding.dll).

    MTOUCH : warning MT0109: The assembly ‘System.Security.Cryptography.X509Certificates.dll’ was loaded from a different path than the provided path (provided path: /Users/Administrator/.nuget/packages/system.security.cryptography.x509certificates/4.3.2/runtimes/win/lib/netstandard1.6/System.Security.Cryptography.X509Certificates.dll, actual path: /Library/Frameworks/Xamarin.iOS.framework/Versions/14.14.2.5/lib/mono/Xamarin.iOS/Facades/System.Security.Cryptography.X509Certificates.dll).

    Thanks,

    Mark.

  • Daniel Vinet

    Hi everyone,

    Thank you Jon for this article. Don’t know if this is the right place and I know that it’s probably been asked in the past, but I can’t find any infos on this. My question is; will we see, someday, a C++ compiler integrated to Visual Studio for Mac and if not, why?

    Thank you
    Daniel