Visual Studio 2017 for Mac - Preview Release Notes


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


Download the Current Preview Release of Visual Studio 2017 for Mac

Install the most recent Preview version of Visual Studio for Mac by changing the updater channel to Beta.

Note

This release is not "go-live" and not intended for use on production computers or for creating production code.

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 Visual Studio for Mac IDE. You can track your feedback in the Developer Community portal. For suggestions, let us know through UserVoice.

Known Issues

Please refer to the Known Issues section.

Release History


Release Highlights


April 18, 2018 – Visual Studio 2017 for Mac version 7.5 Preview 3 (7.5.0.1161)

Top Issues Fixed in this Release

Shell

Performance

Source Code Editing

F#

Xamarin

Xamarin.Mac

Xamarin.Forms

  • Updated Xamarin.Forms to use shared .NET Core Templating Engine so that the templates are now consistent with Visual Studio (Windows).

  • The C# Xamarin.Forms project templates (Blank Forms App, Forms App and Class Library) have been updated and now include a .NET Standard project instead of a Portable Class Library project.

Xamarin.iOS

  • Fixed an issue with missing intellisense.
  • Fixed an issue when migrating from monotouch based projects to Classic and then to Unified projects.

Web tools

  • Fixed an issue with tag syntax highlighting.
  • Fixed missing Sku option when publishing Docker based web apps.

April 9, 2018 – Visual Studio 2017 for Mac version 7.5 Preview 2 (7.5.0.1062)

Top Issues Fixed in this Release

Shell

ASP.NET Core

  • Fixed an issue where adding new .cshtml files from a template would add MSBuild items to the project file when the project file should not be modified.
  • Fixed an issue when publishing of ASP.NET Core web apps where existing web apps were not being shown.

.NET Core

  • In Preferences there is now a Projects > SDK Locations > .NET Core section (Figure 1) that can be used to configure the location of the .NET Core command line tool (dotnet). This can be used to point to a different non-standard install location of the .NET Core SDK.
New .NET Core Project Option
(Figure 1) New .NET Core Project Option
  • If the .NET Core SDK 2.1 preview is installed then project templates for .NET Core 2.1 will be available in the New Project dialog.
  • Improved project load performance when a .NET Core project contains thousands of files.
  • Fixed an issue where the TargetFramework short name format would change on save. Adding a file to a .NET Core project that targets Tizen 4.0 would result in the TargetFramework changing from tizen40 to tizen4.0. Now the original framework identifier name is not modified and if the version of the framework changes then the version use the format that was originally used in the project.

Source Code Editing

Project Management

  • Updated the templating engine to fix problems with @ characters in file names being incorrectly encoded on creating the project.

  • Support new lines in descriptions for templates using new templating engine.

  • Allow the following options to be configured from a project template wizard:

    • gitignore
    • Create project directory
  • Fixed an issue where saving a project with a file wildcard that had a Link that used MSBuild item metadata, as shown below, would result in the wildcard being removed and replaced with MSBuild items for each file included by the wildcard.

    <Compile Include="**\*.cs" Exclude="obj\**">
      <Link>%(RecursiveDir)%(Filename).cs</Link>
    </Compile>
    
  • Fixed an issue where project references would be not saved when adding or removing NuGet references. This would manifest as unpredictable build errors when creating new projects with NuGet packages in them, particularly Xamarin.Forms projects.

  • Fixed an issue loading projects with duplicate items.

Xamarin

App Center Test

  • The New Project dialog templates and categories now refer to App Center Test instead of Xamarin Test Cloud. The final configuration page of the New Project dialog shows App Center Test and the "Learn more" link opens the App Center Test website. Getting started pages now show App Center Test and the url link goes to the App Center Test website.

Xamarin.Android

Xamarin.iOS

  • Includes support for Xcode 9.3.
  • Fixed an issue with Intellisense when completing an iOS event on UIButton.
  • Fixed an issue with the most recent build not always being deployed to an iOS simulator.
  • We have removed the old "HeapShot" memory profiling option for iOS projects. Memory profiling is possible with the Xamarin Profiler.

Xamarin.Forms

Web

  • In HTML/Razor files, url underlines do not adjust as you collapse indentation.
  • Fixed inconsistent nesting of Razor pages in the Solution Pad.

Other fixes


March 21, 2018 – Visual Studio 2017 for Mac version 7.5 Preview 1 (7.5.0.933)

Top Issues Fixed in this Release

Release in Detail

Performance

We are continuing our push to improve performance and reliability in the IDE. This release focuses on improving IDE startup time, which has decreased by as much as 50% for some users.

We’re also fixing top issues and crashes as they come in to the Developer Community site – please keep the feedback coming!

Performance fixes in this release include:

  • Enabled concurrent execution of analyzers across the board, allowing for faster diagnostic squiggles reporting.
  • Improve IDE startup timing by deferring shared template engine loading. This fixes issue #3492.
  • Statically link in libxammac-system.a, instead of using the dylib, improving startup performance.

Source Code Editor

We've continued our effort on improving the C# source editor. This includes the following improvements:

  • We switched the code fixes, refactorings, and compiler errors backend to use the Roslyn engine. This improves the time it takes for the Quick Fix menu to popup and improves performance on typing.
  • "Generate overrides" option is now working as expected.

Azure Functions

Azure Functions is now integrated into Visual Studio for Mac. A New Function template dialog is now integrated into the IDE (Figure 1), along with support for the .NET Core Preview SDK for Azure Functions.

New Azure Function dialog displaying all available functions
(Figure 1) New Azure Function dialog

Function Templates enable you to quickly create new functions using the most common triggers and templates. When a new Azure Functions project is created, automatically include an HttpTrigger function.

You can access these by creating a new Azure Functions project, right-clicking on your project, and choosing the Add | Add Function… menu.

Web Development

Editor support for Razor, JavaScript, and TypeScript have been some of the top web developer requests we have heard. In this release, new editors are being introduced for each of these languages.

Razor

With official support for Razor, you now have syntax highlighting and IntelliSense while editing your C# in .cshtml files (Figure 2):

syntax highlighting and intellisense in a .cshtml file
(Figure 2) Syntax highlighting and IntelliSense

Javascript and TypeScript

Previously, the JavaScript editor was limited to basic syntax highlighting/colorization. Now, it’s rewritten to provide smarter colorization, IntelliSense, brace completion, and the rest of the core editor experience.

Support has also been added for TypeScript editing (Figure 3); providing the same colorization, IntelliSense, and editor experience as JavaScript:

TypeScript colorization and IntelliSense
(Figure 3) TypeScript editing

.NET Core

Visual Studio for Mac version 7.5 will be the first official release supporting the .NET Core 2.1 Preview SDK. You can read all about the .NET Core 2.1 Preview release in the announcement blog post.

Some of the top improvements include: faster build performance, closing gaps in ASP.NET Core and EF Core, improving compatibility with .NET Framework, GDPR and Security, microservices and Azure. We’ve also added support for C# 7.2 in this release.

ASP.NET Core

  • Running an ASP.NET Core 2.1 app that uses HTTPS will prompt you to install and trust the HTTPS development certificate so that HTTPS can be used when testing the site locally.

Accessibility

  • The text editor margins have been made keyboard accessible.

    • Pressing Alt-Tab when the text editor is focused will move the focus to the margins, which can then be moved between using Tab, Shift + Tab, and the cursor keys.
    • Pressing Shift will activate the margin item that has focus.

    This fixes bug #53722.

Xamarin

Xamarin.Forms

This release brings numerous bug fixes to improve the .NET Standard developer experience.

We've fixed the following problems when using Xamarin.Forms in a .NET Standard project:

  • Changing the build action to None for a ContentPage xaml file would not add a None MSBuild item to the project.
  • Remove item not added to project when xaml or xaml.cs file excluded from project.
  • Fixed xaml and xaml.cs file not nested after removing Remove items from the project file in the text editor.
  • Moving/copying xaml files from existing PCL/shared project to .NET Standard project would cause the .NET Standard project to no longer compile.
  • Dependent xaml.cs files are now renamed on renaming the parent xaml file in Solution window.
  • Prevent renaming of xaml.cs file independent of the xaml file since different names are not supported by Xamarin.Forms in a .NET Standard project.

We've fixed the following problems with code completion of Xaml files:

  • Inconsistent completion for end of self closing tag.
  • Added code completion inside DataTemplate and ControlTemplate elements.
  • Issue when ending attribute with = new ="" was added when ="" already exists.
  • Added StyleSheet and other xaml extensions to code completion list.
  • FontSize value code completion now offers named sizes.
  • Starting code completion in middle of markup extension didn't show correct list.

Android

We've fixed the following problems with Android:

  • The Android Device Manager quits correctly when closing the manager window.
  • Optimized Xamarin.Android analyzers to not run on Generated Code.
  • Fixed an issue when publishing Android packages.
  • Fixed Android emulator launcher issues affecting users with parallel installations of Visual Studio for Mac.

For more information, see the Xamarin.Android release notes.

iOS

  • Updated the Asset Catalog editor's "Import" context menu command to allow the of import of multiple assets at a time. This fixes bug #60781.

  • Update iOS automatic provisioning algorithm to support more entitlements:

    • Data Protection
    • Wallet
    • Associated Domains
    • Near-field communication Fixes some devcomm issues
  • Prevent the UI from allowing users to try (and fail) to run an app on the "Generic Simulator" target which is only meant as a placeholder if no simulators are available.

Registrar Optimizations

This is a set of optimizations that makes the dynamic registrar removable by the linker (under most circumstances). This results in:

  • Smaller applications - The linked Xamarin.iOS.dll is between 30-50% smaller than before since the information (e.g. custom attributes) needed only at build time can now be removed. This also allows the linker to remove more code than before (since less code is being referenced).
  • Faster application startup - More registration work is being done at build time instead of at runtime. E.g. this removes the need to use (slow) reflection on custom attributes to register types and methods.
  • Reduced memory usage - The avoided work also reduces the memory required for applications. Initial (startup) memory requirement is down 30% for a minimal application and 20% for extensions. This makes it easier to create some type of extensions where iOS imposes memory limits (e.g. 16MB for Today extensions).

For more information, see the Xamarin.iOS release notes.

Visual Designers

iOS Designer
  • Drag and Drop in Document Outline

    It's now possible to drag items in the Document Outline to affect their z-order within their container, or to move them to a different container.

  • Document Breadcrumb Bar

    A new breadcrumb bar in the top toolbar of the designer shows the selected view's parent hierarchy. Click on a parent view in the breadcrumb bar to select it on the design surface.

  • Xcode 9.3 Support

    • Updated the iOS designer to work correctly with the latest version of Xcode 9.3.

    • Added missing Xcode 9 properties.

    • Fixed layoutGuides creation.

    • Added support for latest watchOS views and gestures, including:

      • SCNScene
      • SKScene
      • HomeKit Camera
      • Payment Button
      • Gestures
Android Designer
  • More reliable resource processing.

  • Improved behavior for multi-select.

Xamarin.Mac

  • We fixed an issue that was making it possible to run an app whose minimum OS version is greater than the current OS.

For more information, see the Xamarin.Mac release notes.

Live Player

  • We fixed issues where VSM would try to build the project before deploying to Live Player.
  • We fixed issues where the Live Player devices would not be visible if the simulator build configuration was selected.

Xamarin Profiler

  • Improved light allocations mode.
  • Improved snapshots comparison.
  • Performance improvements.

For more information, see the Profiler release notes.


Known Issues

  • Razor Page: Type @page[ret]. IntelliSense does not dismiss.
  • No C# errors in scrollbar (only squiggles in the editor).
  • First Razor file opened may have no syntax highlighting.
  • No completion in HTML after @page.
  • Format Document adds blank line after <style>.
  • CSS Class IntelliSense in _Layout.cshtml, but not in views.
  • Intermittent crash when typing @{this. } quickly.
  • Razor TagHelpers in project aren’t refreshed on build.

Top of Page