Visual Studio Icon Visual Studio 2022 for Mac version 17.0 Release Notes


Developer Community | System Requirements | Compatibility | Distributable Code | Documentation | Blogs |


Important

This release is not "go-live" and not intended for use on production computers or for creating production code. To update Visual Studio 2022 for Mac to the most recent release, use the Visual Studio > Check for Updates... menu in the IDE.

Download Community Button


What's New in Visual Studio 2022 for Mac

Visual Studio 2022 for Mac Releases

Visual Studio 2022 for Mac Blog Posts

The Visual Studio Blog is the official source of product insight from the Visual Studio Engineering Team. You can find in-depth information about the Visual Studio 2022 for Mac releases in the following posts:


17.0.0-pre.2 Visual Studio 2022 for Mac version 17.0 Preview 2 NewReleaseButton

released October 13th, 2021

Debugger

  • We have improved the look and feel of the debugger tooltips and popups.

Shell and Tools

  • We have added more missing project options and global preferences.
  • We have added a new Test Results tool window.
  • We fixed many smaller UI issues.

Test Tools

  • We fixed an issue where new tests were not automatically added to the Tests tool window.

Web and Azure

  • We have updated the .NET SDKs to 5.0.402 and 3.1.414.
  • .NET 6 RC2 is now supported on Intel-based Macs, but must be installed manually. .NET 6 RC2 in Visual Studio for Mac isn't supported yet on the M1 processor architecture.

Issues Fixed From Developer Community

17.0.0-pre.1 Visual Studio 2022 for Mac version 17.0 Preview 1

released September 29th, 2021

Summary of What's New in this Release of Visual Studio 2022 for Mac Private Preview

This is the first public release of a new fully native UI for Visual Studio for Mac - which focuses on improving performance, reliability, and quality for UI functionality across the IDE. While we working on completing the move to native UI, there are many features not supported yet from the previous release. These features will be coming back soon.

The following workloads are supported in this release:

  • .NET Console & ASP.NET Core projects (including Blazor Server and Blazor WebAssembly).
    • Supports .NET Core 3.1, .NET 5, .NET 6 RC1.
  • Mobile development with Xamarin.
  • Game development with Unity.

The Visual Studio 2022 for Mac preview can be installed side-by-side with earlier versions of Visual Studio for Mac and is free to use. As a preview release, we don't recommend using it on your production systems.

Editor

  • Multi-caret copy/paste experience.

Git Tooling

  • New Git Changes window for managing commits, staging work, pushing, and pulling from a repo.
  • View Git history view updated to native, with improved accessibility.

.NET 6 SDK

  • .NET 6 RC1.

.NET Productivity

  • Nullable reference types is now enabled by default for new .NET projects.
  • C# 10.0 File-scoped namespace refactoring.
  • Refactoring to prefer null check over type check.
  • Introduce parameter refactoring can move a new parameter from the method implementation to its callers.

Programming Languages

User Interface

  • Menus and terminology have been updated across the IDE to make it feel more familiar to Visual Studio users.
  • As part of our move to native macOS UI, the default light and dark themes have been updated to better match macOS colors and improve contrast.
  • You can now sync your Visual Studio for Mac IDE theme with the macOS theme.
  • The status bar has been moved to the footer of the IDE.
  • When issues occur on build, status bar icons show the number of warnings or errors that are present.

Web Tools

  • The "ASP.NET Core Empty" template that comes with .NET 6 is using the new 'minimal APIs' paradigm for which we have started to add support.

Workloads currently not supported:

  • Developing .NET 6 mobile apps with MAUI.
  • Blazor Desktop.

Features not yet available

  • Preferences - Only a subset of options are currently available.
  • Solution & Project Options, Only a subset of options are currently available.
  • Code Policies.
  • Tool window drag & drop.
  • Extension manager.
  • Git dialogs:  branches, merge, rebase.
  • Test results.
  • Tasks window.
  • Document outline.
  • Regular expression toolkit..
  • Custom tool management.

Suggestions fixed from Developer Community

Issues Fixed From Developer Community

Editor

Multi-caret copy\paste experience

We improved the multi-caret copy and paste experience. Previously, pasting multiple lines into multiple carets resulted in the entire clipboard being duplicated at each caret. Now, pasting multiple lines into the same number of carets will insert each line to a respective caret. To use multi-caret press Control+Option+mouse click and use Option+Shift+arrow key to expand selections. Next, press Cmd+C to copy the text in multiple selections. Use Control+Option+mouse click to create multiple carets for each line that you would like to paste in desired locations. Finally, press Cmd+V to paste each line at its own caret.

Multi-caret copy and paste

Programming Languages

C# 10

  • Record structs and with expressions on structs (record struct Point(int X, int Y);, var newPoint = point with { X = 100 };).
  • Global using directives: global using directives avoid repeating the same using directives across many files in your program.
  • Improved definite assignment: definite assignment and nullability analysis better handle common patterns such as dictionary?.TryGetValue(key, out value) == true.
  • Constant interpolated strings: interpolated strings composed of constants are themselves constants.
  • Extended property patterns: property patterns allow accessing nested members (if (e is MethodCallExpression { Method.Name: "MethodName" })).
  • Sealed record ToString: a record can inherit a base record with a sealed ToString.
  • Incremental source generators: improve the source generation experience in large projects by breaking down the source generation pipeline and caching intermediate results.
  • Mixed deconstructions: deconstruction-assignments and deconstruction-declarations can be blended together ((existingLocal, var declaredLocal) = expression).
  • Method-level AsyncMethodBuilder: the AsyncMethodBuilder used to compile an async method can be overridden locally.
  • #line span directive: allow source generators like Razor fine-grained control of the line mapping with #line directives that specify the destination span (#line (startLine, startChar) - (endLine, endChar) charOffset "fileName").
  • Lambda improvements: attributes and return types are allowed on lambdas; lambdas and method groups have a natural delegate type (var f = short () => 1;).
  • Interpolated string handlers: interpolated string handler types allow efficient formatting of interpolated strings in assignments and invocations.
  • File-scoped namespaces: files with a single namespace don't need extra braces or indentation (namespace X.Y.Z;).
  • Parameterless struct constructors: support parameterless constructors and instance field initializers for struct types.
  • CallerArgumentExpression: this attribute allows capturing the expressions passed to a method as strings.

See the C# language feature status and breaking changes for more details.


Feedback and Suggestions

We would love to hear from you! You can report a problem through the Report a Problem option in Visual Studio for Mac IDE. You can track your feedback, including suggestions, in the Developer Community portal.

Known Issues

The following is a list of all existing known issues in Visual Studio 2022 for Mac version 17.0 Preview:

  • Opening project with un-checkedout/initialized submodules freezes.
  • There is currently unexpected behavior when collapsing the "Build and Debug" node or when selecting the "SDK Locations" node in the Preferences dialog. Nodes in the sidebar may not collapse, nodes under "Build and Debug" may change order when colapsing that node, and the contents of the Android nodes can sometimes be blank.
  • Loading MAUI Android projects is slower than expected.
  • Xamarin.UITest is not yet supported.
  • Visual Studio for Mac will not display MAUI templates in its New Project dialog. As a workaround, MAUI templates can be created via the dotnet CLI.
  • Running NUnit tests may occasionally hang the IDE.
  • Upgrades from .NET SDK Preview 4 to Preview 5 leaves tools in a broken state. Projects will fail to load in Visual Studio, and many SDK commands will fail, such as creating, building, or restoring a project. See the .NET Known Issues for more information.
  • Installing “dotnet-ef" via the command line may result in an error caused by file pemissions: Failed to install tool package 'dotnet-ef'. To work around this, you can use rm -rf ~/.dotnet/tools from the command line to remove the locked folder and then re-run the dotnet tool install command from command line as workaround.
  • The Installer .dmg image cannot be ejected. This was found to occasionally happen when anti-virus software is being used. To workaround this issue, log out and back in to macOS.
  • Opening a second project may not load correctly. If this happens, restart the IDE.

Top of Page