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


Developer Community | System Requirements | Documentation | Blogs | Servicing |


Download


NewReleaseIcon Update 17.0.6: This update addresses these issues.

Update 17.0.5: This update addresses these issues.

Update 17.0.4: This update addresses these issues.

Update 17.0.3: This update addresses these issues.

Update 17.0.2: This update addresses these issues.

Update 17.0.1: This update addresses these issues.

What's New in Visual Studio 2022 for Mac

Welcome to the v17.0 release of Visual Studio 2022 for Mac. This is the fastest Visual Studio for Mac version yet with an all new native macOS UI, fully running on .NET 6, and optimized for Apple Silicon (ARM64) processors. Some of the top highlights of this release include:

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:

General IDE Improvements

New native macOS UI

We’ve introduced a new look and feel in Visual Studio for Mac that combines the modern macOS UI with the productive experience you’ve come to know and love in Visual Studio. Some of the most visible changes include:

  • Refreshed UI across all tool windows, preferences, and document tabs.
  • New light & dark themes that can synchronize with the macOS theme settings.
  • A new status bar reporting IDE status in the footer, as well as highlighting number of warnings or errors in a solution.

Support to run natively on Apple Silicon (ARM64) processors

The IDE now runs natively on Apple Silicon (ARM64) Processors like the M1 processor. This was a top request from customers on our Developer Community site. Among other improvements, large solutions now load up to 50% faster.

Running the IDE on .NET 6

The IDE has moved to run on the .NET 6 runtime when previously it ran on the Mono runtime. In addition to providing performance improvements throughout the product, this also enabled the above work to run the IDE natively on Apple Silicon (ARM64) processors.

Improved consistency with Visual Studio (Windows)

Accessibility improvements

As part of the move to fully native macOS UI, accessibility has been improved throughout the IDE:

  • Improvements to VoiceOver support across the full feature set.
  • The default light and dark themes have been updated to better match macOS colors and improve contrast.

Tool window drag and drop docking experience

Tool windows can be docked (attached to a side of the IDE) by dragging their title and dropping them on top of drop-target icons that appear in the IDE. When dragging the windows, these drop-target icons appear to make it easier to pick a side of the IDE, or window, for placing the tool window.

Visual Studio 2022 for Mac with a file list (solution window) docked on the right side of the IDE. The window is then dragged and dropped to dock on the left side.

Notable Issues Fixed

Editor

Shared Editor Improvements

Subword navigation

Ctrl+Alt+Left Arrow and Ctrl+Alt+Right Arrow will now navigate by subword. For instance, the string "HelloWorld" identifies "Hello" and "World" as subwords. A new Select subword on double click option has been added in Preferences > Text Editor > Behavior.

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

C# Language Tooling

New quick fixes and refactorings

In C# 8.0 we introduced nullable reference types allowing you to declare whether null is expected. To use nullable reference types you either need to add the <Nullable>enable</Nullable> element to your project file or add the #nullable enable pragma to every source file in your project. To help streamline this process we now automatically include the <Nullable>enable</Nullable> for new .NET projects.

In C# 10.0 we are introducing File-scoped namespace giving you the option to not nest class definitions within a namespace. We now have a refactoring to convert a namespace to a file-scoped namespace. In-order to use file-scoped namespace you will first need to add the <LangVersion>preview</LangVersion> element to your project file. Next, place your cursor on a namespace. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Select Convert to file-scoped namespace.

File-scoped namespace refactoring

There is now a refactoring to prefer is not null over is object when applied to value types. To use this new refactoring place your cursor on a type check. Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Select Prefer null check over type check.

A new Introduce parameter refactoring can move a new parameter from the method implementation to its callers.

Auto-generated exception tags in XML documentation comments

XML comments will now automatically generate an <exception> tag within a <summary> tag allowing you to add a description when a method explicitly throws exceptions.

Razor Editing

F# Editing

Fixed top reported issues from the Developer Community:

Debugging

Notable Issues Fixed

Testing

Fixed top reported issues from the Developer Community:

Git Version Control

Git Changes window

This release introduces the Git Changes window from Visual Studio (Windows). As you do your work, Visual Studio for Mac keeps track of the file changes to your project in the Changes section of the Git Changes window. When it nears time to commit your work, you can use this window to review all the changes you've made, stage, and then commit. You can also use this window to stash work, initiate Git push & pull commands, as well as amend a recent commit.

The Visual Studio for Mac Git Changes window, open showing a list of files in a Changes list. A BasketService.cs file is in a Staged changes list.

Clone from GitHub and open in Visual Studio for Mac

Visual Studio for Mac can now be opened when cloning a Git repo from the browser, such as on GitHub; support has been added for the git-client:// protocol.

Notable Issues Fixed

Fixed top reported issues from the Developer Community

NuGet

Fixed top reported issues from the Developer Community

New search grouping and filtering options

The Search Results window includes new options for grouping by file/folder, or viewing results in a tree view. You can also search within the search results.

Search Results window showing the results of a source code search. The window has a Group By dropdown set to "Path Only" and shows options for viewing results in a tree view, or list. A Search Find Results search box is also available.,

Notable Issues Fixed

Installer

Fixed top reported issues from the Developer Community

.NET Development

Development with .NET 6

You can now use .NET 6 to build applications console apps, or ASP.NET Core solutions for the web or cloud. Visual Studio for Mac supports the latest release of .NET 6 while continuing to enable development with .NET Core 3.1 and .NET 5. Learn more about the improvements in .NET 6.

Notable Issues Fixed

  • We have updated mono to 6.12.0.174 addressing CVE-2020-8927. The mono update also requires updating Xamarin.iOS to 15.8.0.3, Xamarin.Mac to 8.8.0.3 and Xamarin.Android to 12.2.4.3
  • Updated the .NET SDKs to 6.0.203, 5.0.408 and 3.1.419, addressing CVE-2022-23267, CVE-2022-29145
  • We have updated the .NET SDKs to 6.0.200 and 5.0.405 addressing CVE-2022-21986
  • On Apple Silicon (M1 or Arm64) machines, the .NET 5.0, 6.0 and .NET Core 3.1 x64 SDKs, released in November, are not supported by Visual Studio for Mac 17.0 Preview 3. This is because the new x64 .NET SDKs install into a different directory and Visual Studio for Mac currently only supports the original .NET SDK install location, which is now only used by the Arm64 SDK

Azure Development

  • Azure Functions v4 for .NET 6 is now supported on all platforms.
  • Added full support for Azure Functions on x64 and Azure Functions v4 on Arm64. Azure Functions v2 and v3 are not supported on Arm64 See known issues
  • Fixed an issue where developing a Blazor Server project on M1 machines, the opened browser page information is lost and the interface is displayed incorrectly

Notable Issues fixed

Fixed top reported issues from the Developer Community

Unity - Game Development

Fixed top reported issues from the Developer Community

Xamarin - Mobile Development

  • Added Xcode 13.3 support

Building Xamarin traditional/Mono-based projects with the Mono-based MSBuild Starting with Visual Studio for Mac 17.0 Preview 7, you may now build using the MSBuild provided by the .NET SDK or MSBuild on Mono.

By default, classic Xamarin projects and SDK style projects targeting .NET v4.x will be built using MSBuild on Mono.

If your solution contains any project that requires building with MSBuild on Mono all projects in that solution will be built with MSBuild on Mono. This will prevent build errors due to differences in behavior between the two different MSBuilds when classic projects reference SDK style projects.

If your solution does not contain any projects that require building with MSBuild on Mono then it will be built with MSBuild provided by the .NET SDK.

Additionally, some NuGet packages may contain MSBuild tasks that do not support MSBuild from the .NET SDK and may require building with MSBuild on Mono. An MSB4062 error containing the text 'Could not load file or assembly 'Microsoft.Build.Utilities.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'' is an example of an incompatible MSBuild task being used. To work around this, you will need to manually configure your solution to build with MSBuild on Mono:

  • Navigate to Solution Options by right clicking the solution in the Solution window and selecting Option
  • Select ‘Build – General’
  • Check the ‘Build with MSBuild on Mono’ box to build with MSBuild on Mono

Notable Issues Fixed

Fixed top reported issues from the Developer Community

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.


Visual Studio 2022 for Mac Releases

17.0.6 Visual Studio 2022 for Mac v17.0.6 NewReleaseButton

17.0.6 build 4 released July 12th, 2022

This release focuses on fixing the following issues found in the v17.0.x releases:

  • We have updated the .NET SDKs to 6.0.302 and 3.1.421.
  • Fixed an issue where VS for Mac might appear to hang when launching the updater.

17.0.5 Visual Studio 2022 for Mac v17.0.5 NewReleaseButton

17.0.5 build 6 released June 28th, 2022

This release focuses on fixing the following issues found in the v17.0.x releases:

17.0.4 Visual Studio 2022 for Mac v17.0.4

17.0.4 build 23 released June 21st, 2022

This release focuses on fixing the following issues found in the v17.0.x releases:

17.0.3 Visual Studio 2022 for Mac v17.0.3

17.0.3 build 21 released June 14th, 2022

This release focuses on fixing the following issues found in the v17.0.x releases:

17.0.2 Visual Studio 2022 for Mac v17.0.2

17.0.2 build 8 released June 7th, 2022

This release focuses on fixing the following issues found in the v17.0.x releases:

17.0.1 Visual Studio 2022 for Mac v17.0.1

17.0.1 build 72 released May 31st, 2022

This release focuses on fixing the following issues found in the v17.0 release:

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:

  • .NET MAUI development is not officially supported in Visual Studio for Mac 17.0. Initial support will be provided in Visual Studio for Mac 17.3, currently in preview.
  • The Tasks (TODO list) window is not available.
  • The Regular expression toolkit is not available.
  • Xamarin.UITest is not yet supported.
  • Known issue when adding an Apple account from the Applications tab in the Info.plist editor.
    • After the account is added, the Apple Id is not visible, and the provisioning profiles are not synchronized until the Info.plist is closed and re-opened.
    • Syncing Apple Developer Account certificates and provisioning profiles is not supported except for accounts that are intended to be used for In-House deployments. To workaround this issue, please download certificates and provisioning profiles directly from the Apple Developer Account web site.
  • On ARM64 processors, dotnet-ef tool is supported for projects targeting ASP.NET Core 6.0 and higher only.
  • Protected NuGet package sources added or edited inside the IDE won't be picked up by the dotnet CLI. Protected sources which provide their own credential provider, such as Azure DevOps, are still supported by the IDE and CLI. Package restore is also supported for clear passwords in NuGet.config.
  • Entering Chinese characters into the Integrated Terminal can cause the IDE to crash. Due to this, the Integrated Terminal is temporarily disabled for Chinese Simplified and Chinese Traditional locales until this issue can be fixed.
  • When using the integrated Docker support, if you encounter the issue "Error from pipe program 'docker': FATAL ERROR: Failed to initialize dispatcher with error 80131534" when attempting to debug, rename or remove the ~/vsdbg folder, and then trying to debug again.
  • Xamarin and Mono projects will fail to build if no .NET SDK is installed. The workaround is to install any .NET SDK.
  • Occasionally, using the quick fix actions to move a class to a file will result in a blank editor window. Attempting to save will have no effect. To workaround the issue, click from one editor tab to another, and back, to refresh the editor and the contents of the file will be visible again.

Top of Page