Visual Studio for Mac Preview Release Notes
Visual Studio for Mac is a new member of the Visual Studio family focused on mobile and cloud development using Xamarin and .NET Core.
Visual Studio for Mac is an evolution of Xamarin Studio, and includes all the functionality of Xamarin Studio 6.2.
Many changes have been made to the look-and-feel, terminology and default settings to to align more closely with Visual Studio, while remaining a Mac-centred development experience.
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
First-class support for the Xamarin Platform allows you to develop rich native experiences for iOS, Android and Mac. The Xamarin.Forms cross-platform library helps you share XAML-based UI code between iOS, Android and UWP (though UWP is not supported on Mac) without limiting access to native functionality.
- 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
The following features are new in Visual Studio for Mac Preview:
.NET Core Support
.NET Core is a platform for creating applications that run on Windows, Linux and Mac. Visual Studio for Mac has support for loading, creating, running and debugging .NET Core projects.
In order to run .NET Core projects, .NET Core SDK 1.0 RC 4 must be downloaded and installed. You can download the SDK installer from here: .NET Core SDK 1.0.0-rc4. If it is the first time you install .NET Core on a Mac, please read the installation instructions (notice that the instructions page has a link to Preview 2, don't use that one).
.NET Core support includes:
- C# 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
Connected App Templates
The new Connected App project templates offer a quick way to create a multi-platform 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.
In Xamarin Studio, 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 extends this by adding Solution Run Configurations which allow multiple projects to be launched at once. You can create solution run configurations in the Solution Options dialog.
Using solution run configurations, you can debug multiple projects at once. This is very useful for debugging how a mobile app interacts with its backend service.
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.
Audio Unit Wizard
The new Audio Unit Extension wizard adds 3 options to customize the Audio Unit project template's plist.
- Audio Unit Type
- Music effect
- Subtype Code: has to be 4 characters exactly
- Manufacturer Code: has to be 4 characters exactly
Remove TLS Provider option
TLS Provider is not needed in the iOS build options anymore because:
- AppleTLS is the default since C7 and support up to TLS 1.2.
- MonoTLS is limited to SSLv3 and TLSv1: both are being deprecated.
Note: Xamarin.iOS 10.4 release notes already mention MonoTLS is deprecated and that it will be removed in the future.
Other improvements and bug fixes
- We now show a progress bar when deploying to device. This is especially useful for watchOS. (Requires Xamarin.iOS 10.5.0.323+).
- We now use known OS versions from Xamarin.iOS to populate the deployent target dropdowns.
The 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.
Please report any problems you encounter with the Visual Studio for Mac Preview using the Help > Report a Problem menu.
If there is any functionality that you would like to be changed or added to Visual Studio for Mac, please use the Visual Studio for Mac UserVoice to share your ideas and vote on suggestions made by other people. You can also access this from Help > Provide a Suggestion.
We can't respond to all feedback directly, but we do read it all and it very much helps us prioritize improvements to make Visual Studio for Mac work better for you.
Visual Studio for Mac Preview requires macOS 10.11 or later. For Xamarin development there are additional requirements listed here.
Side by Side Installation with Xamarin Studio
Visual Studio for Mac Preview can be installed side by side with Xamarin Studio.
However, Visual Studio for Mac requires Mono 4.8, and installing or updating the stable or beta version of Xamarin Studio will downgrade Mono to an older version.
You can work around this by switching Xamarin Studio to the alpha update channel, or by opting out of Mono 4.6 downgrades in the Xamarin Studio update dialog. If you need to reinstall Mono 4.8, you can get it here.
This is a preview release, and ships with several known issues and limitations that will be addressed in future updates.
- Changes in files on disk are not picked up by wildcards until the project is reloaded.
- There are very few ASP.NET Core specific file and project templates.
- HTML IntelliSense does not support HTML5.
- The first time you build an Android project that uses the Google Android Support Libraries, the build may appear to hang with no output while the download takes place.
- The Connected App templates currently require the app to be manually configured with the address of the service on the host machine, except when using the iOS Simulator.
- The debugger sometimes does not automatically exit the debug layout when the debug session ends.
- The Xamarin.Forms XAML previewer can cause Visual Studio for Mac to become unresponsive.
- Saving simplified MSBuild Sdk style project files will result in an xmlns attribute being added to the file.
- Adding a NuGet package to a simplified MSBuild Sdk style project will add a PackageReference element with a child Version element instead of using an attribute for the Version.
- The File Nesting extension version 0.1 causes NuGet package restore to fail with Visual Studio for Mac Preview 3. This extension should be disabled in the Extension Manager until a new version is published that is compatible with Preview 3.
Changes in Preview 3
- Recently used project templates are now displayed in the New Project dialog.
- Open Url context menu is now available for hyperlinks in the text editor.
.NET Core Support Improvements
- Updated the .NET Core CLR debug adapter to version to 1.6.3
- Project templates updated to use the new simplified MSBuild Sdk style projects.
- Support simplified MSBuild .NET Core projects that use the Sdk attribute.
- Simplified MSBuild .NET Core projects require the .NET Core SDK 1.0.0-rc4 to be installed and Mono 184.108.40.2062 or higher.
- Show packages from .NET Core project file by default in the Dependencies folder whilst waiting for dependency information to be returned from MSBuild.
- NuGet packages are now restored on saving the project file after it has been edited in the text editor.
- NuGet is now used to restore .NET Core packages instead of running MSBuild restore.
- Fixed text editor not highlighting code correctly for pre-processor directives.
- Fixed C# brace matching.
- Fixed code templates not working correctly from "Insert Template..." dialog.
- Fixed enter in code generator not implicitly selecting current item.
- Fixed format document changing position of caret.
- Fixed C# code completion for Android shows XML.
- Fixed Go To Matching brace not working for regions.
- Fixed TextMate indentation engine not reading the on the fly formatting IDE setting.
- Fixed text editor scrolling there are many IExtendingTextLineMarkers.
- Fixed invalid search pattern error with certain wildcard items.
- Fixed non-C# files not displayed in Solution window for .NET Core projects.
- Fixed build error after renaming a .NET Core project.
- Fixed breakpoint not hit in .cshtml files.
Changes in Preview 2
- Solutions now load much faster.
- Visual Studio for Mac now uses NuGet 220.127.116.118.
- The XAML previewer is more reliable.
- NuGet package source information is now reloaded if the NuGet.Config file is modified in the text editor or externally.
- The external console is now used for new .NET Core console applications by default. This can be changed in Project Options - Run - Configurations - Default.
- Welcome Page
- Recent project / solution list can be filtered and removed.
- The page can be navigated using keyboard.
- Fixed activation / deactivation issue when opening and closing a solution.
- Fixed Report a Problem on macOS 10.11.
- Fixed IntelliSense and syntax highlighting in XAML files.
- Fixed application icon rendering issue.
- Fixed NuGet package sources information not available when NuGet.Config read fail.
- Fixed NuGet package sources with encrypted passwords not being supported.
- Fixed install error when installing a NuGet package, such as Microsoft.AspNetCore.Mvc, which has package dependencies not in the local NuGet package cache into a .NET Core project.
- Fixed NuGet package restore information not displayed for the Connected Service project templates.
- Fixed potential user interface hang on opening a .NET Core project.
- Fixed execution error when an environment variable is used in a run configuration.
- Fixed potential crash when switching active run configuration.
- Many other bug fixes!