Visual Studio 2017 for Mac

Last Update: 10/12/2017

Developer Community | System Requirements | Compatibility | Distributable Code | Xamarin | Blogs | Servicing


This article contains information about the newest release for Visual Studio 2017 for Mac version 7.0.

Use Visual Studio 2017 for Mac to build apps for mobile, web, and the cloud with Xamarin and .NET Core, as well as games with Unity.

Download Visual Studio 2017 for Mac

To learn more about Visual Studio 2017 for Mac, see Mac System Requirements and Mac Platform Targeting and Compatibility.

To learn more about other related downloads, see the Downloads page.

Feedback

We’d love to hear from you! You can report a problem via the Report a Problem option in the upper right hand corner of the Visual Studio for Mac IDE itself. You can track your feedback in the Developer Community portal. For suggestions, let us know through UserVoice.

Release Date: June 02, 2017 - Visual Studio for Mac 7.0.1.24

This release fixes a number of bugs and memory leaks.

Android SDK Manager

  • Fixed: SDK License is not wrapping correctly.
  • Fixed: Cancel Button does not change label back to Install Updates.
  • Fixed: On uninstalling latest build of SDK Tools, all SDK tools are uninstalled.
  • Fixed: Able to modify components while updates are in progress.
  • Fixed: Cannot use downloaded SDK tools from standalone installer due to permission issues.
  • Fixed: Not possible to install a previously removed component.
  • Fixed: SDK Tools 25.2.5 fail to install.

Other issues

  • Fixed: Issue with restoring documents with side by side document windows.
  • Fixed: The name 'InitializeComponent' does not exist in the current context with .NETStandard/new csproj format portable library.
  • Fixed: Android deployment is failing silently in release mode.
  • Fixed: Quick Fix doesn't do anything.
  • Fixed: Removing a Reference in the Edit References Dialog does not work.
  • Fixed: Uploading iOS Forms PCL app to Test Cloud fails build step with "Unknown MSBuild Failure”.
  • Fixed: Can not inspect variables in .Net core applications.
  • Fixed: F# debugging commands show up in all files.
  • Fixed: F# Xamarin Forms template doesn't restore packages.
  • Fixed: Call Stack disappears when a thread selection is made while debugging .NET Core application.
  • Fixed: Holding the shift and the down keys continues to select text past the viewport.
  • Fixed: UI lockup while restoring packages.
  • Fixed: Editor doesn't render the full text.
  • Fixed: File open ordering issue after solution load when using Apple events to open files.
  • Fixed: Renaming a file to match class name deleted the file.
  • Fixed: FooButton_Clicked handler completion does not generate method stub.
  • Fixed: Split screen causes menu items to become disabled.

What's New in Visual Studio for Mac

Core Functionality

Visual Studio for Mac has everything you would expect from a modern IDE, including a full-featured source editor, code search and navigation, a powerful debugger, a customizable workspace, Git integration, and a rich extension system.

Other features include:

  • Roslyn-based C# IntelliSense, refactoring, analyzers, and code fixes.
  • NuGet-based package management.
  • Visual Studio compatible project format.
  • MSBuild build engine.
  • Integrated unit testing.
  • Support for F# out-of-the-box.

.NET Core Support

.NET Core is a platform for creating applications that you can run on Windows, Linux, and Mac. Visual Studio for Mac provides you with support for loading, creating, running, and debugging .NET Core projects.

In order to run .NET Core projects the .NET Core SDK should be downloaded and installed.

.NET Core support includes:

  • C# and F# IntelliSense.
  • .NET Core project templates for console, library, and web applications.
  • Full debugging support, including breakpoints, call stack, watch window, etc.
  • NuGet PackageReferences and MSBuild-based restore.
  • Integrated unit testing support for running and debugging tests with the Visual Studio Test Platform that is included with the .NET Core SDK.
  • Migration from old project.json format.

Web Tooling

Visual Studio for Mac adds new web tooling support for HTML, CSS and JSON files.

HTML

  • New HTML template.
  • Improved smart indent and formatting.
  • Improved colorization.
  • Improved Intellisense.
  • Code folding (must be enabled).
  • Unminify command.
  • Improved Code Templates (snippets).
  • Surround selection with <div>.
  • Option up/down moves selected text up/down.

CSS

  • Improved smart indent and formatting.
  • Improved colorization.
  • Improved IntelliSense.
  • Code folding.
  • Many Code Templates (snippets).
  • Option up/down moves selected text up/down.

JSON

  • Schema picker with access to schemastore.org.
  • Validation from schema.
  • IntelliSense from schema.
  • Improved smart indent and formatting.
  • Improved colorization.
  • Comment/uncomment.
  • Quote injection and brace matching.
  • Option up/down moves selected text up/down.

Xamarin

First-class support for Xamarin allows you to develop rich native experiences for Android, macOS, iOS, tvOS, and watchOS. Xamarin.Forms cross-platform applications help you share XAML-based UI code between Android, iOS, and macOS without limiting access to native functionality.

This includes:

  • Building, deployment, debugging, and profiling.
  • Drag-and-drop UI designers for iOS and Android.
  • Live preview for Xamarin Forms.
  • .NET Standard compatible framework.
  • Bindings to native APIs.

Multiplatform App Templates

The Multiplatform Xamarin.Forms App and the Native App project templates now provide you a quick way to create a multiplatform mobile app and its cloud backend.

These templates create multiple projects: a Xamarin.iOS app project and a Xamarin.Android app project that share code via a shared project, and a .NET Core Web API project that implements a back-end service for the apps (Figure 1).

Debugging with .NET Core

(Figure 1) Debugging with .NET Core

Publishing ASP.NET Core Web Apps to Azure App Services

It is possible to publish your ASP.NET Core web apps to Azure App Services (Figure 2).

Publish to Azure content menu

(Figure 2) Publish to Azure Content Menu

To publish your web app, select the Publish | Publish to Azure command from the Solution Pad or from the Project menu. Then choose the App Service you wish to deploy to, or create a new Azure App Service (Figure 3). Output from the publishing will be logged to a Publish output pad and a publishing profile will be created under Properties > PublishProfiles in the project.

Publish a new app service

(Figure 3) Publish a New App Service

All publish profiles defined in the project will be shown as options within the Publish menu so that you can deploy again without having to select the App Service a second time.

Multi-Process Debugging

Projects have Project Run Configurations which specify options and arguments for running your project. A dropdown in the toolbar lets you view and change the current active Run Configuration.

Visual Studio for Mac's Solution Run Configurations window allows multiple projects to be launched at once. You can create solution run configurations in the Solution Options dialog. This is very useful for debugging how a mobile app interacts with its backend service.

TextMate Bundles

Visual Studio for Mac has support for TextMate language bundles, which you can use to add:

  • Editor color themes.
  • Code snippets.
  • Grammars for new languages, enabling highlighting, and basic IntelliSense.

You can add TextMate bundles in Preferences > Text Editor > Language Bundles.

iOS

Audio Unit Wizard

The new Audio Unit Extension wizard (Figure 4) adds 3 options to customize the Audio Unit project template's plist.

  • Audio Unit Type
    • Instruments
    • Generator
    • Effect
    • Music effect
  • Subtype Code: has to be 4 characters exactly.
  • Manufacturer Code: has to be 4 characters exactly.

Audio Unit Wizard

(Figure 4) Audio Unit Wizard

watchOS Extension Wizard

In Xcode 8.3, Apple introduced watchOS extensions (similar to the iOS ones), starting with the Intents Extension (Siri).

The watchOS Extension wizard (Figure 5) has been updated to support watchOS extensions, and we now have a dedicated Intents Extension template.

watchOS extension wizard

(Figure 5) watchOS Extension Wizard

Other Improvements and Bug Fixes
  • We now handle Deprecated and Obsoleted attributes in autocompletion window. This allows Xamarin.iOS obsoleted and deprecated APIs to be shown as struck through.
  • We show a progress bar when deploying to device. This is especially useful for watchOS. (Requires Xamarin.iOS 10.5.0.323+).
  • We use known OS versions from Xamarin.iOS to populate the deployent target dropdowns.
    Two advantages are that we can give you the exact minimum version for each App Extensions type, as well as avoid showing OS versions, based on Xcode, that Xamarin.iOS does not yet support.

Mac/iOS API Issue Analyzer

  • Fix duplicated marker when analyzer is triggered.
  • Get the "message" (piece of information in the framework explaining why the API is deprecated/obsolete) from the attribute and append that information to the different availability messages.
  • Updated all availability messages to improve clarity.
  • Improved clarity by using the symbol's name in the availability message, changed from:
    API Usage Issue: this API requires iOS 10.0 or later
    to:
    'MyMethod' is only available on iOS 10.0 or newer

Android

  • New SDK Manager

Visual Studio for Mac includes its own Android SDK manager (Figure 6).

Android SDK Manager window

(Figure 6) Android SDK Manager

  • Deploying your project to device or emulator is now done via the /t:Install msbuild target. Previously Visual Studio for Mac would use its own internal logic for deploying applications to devices but now it uses same common targets that you can employ from Terminal, or that are used in Visual Studio on Windows. One of the benefits of this is that there are now better logs available to diagnose deployment issues.

  • The default for new binding projects is now class-parse. It can parse Java bytecode directly wihout the need for a JVM. You now have the ability to extract parameter names from Java bytecode which contains debug symbols. For example, bytecode compiled with javac -g. class-parse also doesn't "skip" classes which inherit from, or contain, members of unresolvable types.

Accessibility

  • This version of Visual Studio for Mac contains support for assistive technologies such as Voice Over. Many parts of the user interface, such as the editor and solution explorer, have been made accessible through these technologies. However, it is still a work in progress and futher improvements will be made in future releases. The accessibility features can be enabled either through the Accessibility preferences or through the commandline by entering:

    defaults write com.microsoft.visual-studio com.monodevelop.AccessibilityEnabled 1

Visual Studio 2017 for Mac version 7.2 Release Notes

Visual Studio 2017 for Mac version 7.1 Release Notes

Top of Page