Visual Studio 2017 for Mac

Last Update: 2017/9/1

本文包含有关 Visual Studio 2017 for Mac(版本 7.1)最新发布的信息。

使用 Visual Studio 2017 for Mac,通过 Xamarin 和 .NET Core 生成移动应用、Web 应用和云应用,以及通过 Unity 生成游戏。

Download Visual Studio 2017 for Mac

若要了解有关其他相关下载的详细信息,请参阅下载页。 若要了解 Visual Studio 2017 for Mac 的详细信息,请参阅 Mac 系统要求Mac 平台目标及兼容性

反馈

我们期待你的宝贵意见和建议! 可通过安装程序或 Visual Studio IDE 中的报告问题选项报告问题。 可在右上角找到该选项。 可在开发人员社区门户中跟踪自己的反馈。 如有任何建议,请通过 UserVoice 网站告知我们。

发布日期:2017 年 8 月 14 日 - Visual Studio for Mac 7.1.0.1297

此版本侧重于 bug 修复并引入了以下新功能:

  • 对使用 .NET Core 2.0 生成应用程序的支持。
  • iOS 签名工作流更新。

.NET Core 2 支持

Visual Studio for Mac 支持生成 .NET Core 2.0 应用程序,包括库、控制台应用以及 Web 应用程序和 ASP.NET Core 服务。

现可通过单独的下载安装 .NET Core 2.0 SDK,以便在 Visual Studio 2017 for Mac(版本 7.1)中启用 .NET Core 2.0 开发。 可前往 www.dot.net/core 获取。 Visual Studio 提供对多个 .NET Core SDK 的并行支持。 这还意味着可试用 .NET Core SDK 最新的每日生成,同时使用最新公开发布版本进行开发。

iOS 签名工作流更新

此版本引入了新功能,用于为 iOS 和 tvOS 应用创建所需签名项目。 使用 Visual Studio for Mac 可以:

  • 创建新签名标识,并将它们安装到本地 Keychain。
  • 创建新的配置文件。
  • 向现有配置文件添加新的签名标识。
  • 预配新设备:在 Apple 开发者门户中注册设备,并将它们添加到预配配置文件。

若要试用这些新的签名功能,右键单击项目,然后浏览到“选项”>“ iOS 捆绑签名”。

使用“签名标识”部分

在签名之前必须满足以下条件:

  • Apple Developer Portal(开发者门户)的“证书”部分显示有效的证书(未被吊销)。
  • 该证书是为所选团队/开发者颁发的。
  • 证书和私钥都应在本地 Keychain 中进行安装。
  • 证书未过期。

如果当前计算机上未提供标识,请使用该下拉菜单的“创建签名标识...”选项。

使用“预配配置文件”部分

要显示“预配配置文件”下拉菜单配置文件,必须满足以下条件:

  • 未过期。
  • 有效(包括已注册的设备和有效的证书)。
  • 符合当前分发类型(基于顶部开关的调试版或发行版)
  • 匹配捆绑标识符。 此列表中还应显示与模式匹配的通配符配置文件。

如果找不到任何配置文件,请使用下拉菜单中的“创建预配配置文件...”项。

如果想要切换回先前版本的签名控件,可手动设置预配配置文件和签名标识,将团队设置为“无”。 新的签名控件将被替换为旧控件。 但强烈建议尝试新功能,如果遇到任何问题,请向我们提供反馈。

限制:

  • 在 Visual Studio for Mac 中创建预配配置文件时无需考虑项目中所选的权利 (Entitlements.plist)。 IDE 的未来版本中将提供此功能。
  • 默认情况下,分发预配配置文件将面向应用商店。 应手动创建内部配置文件或临时配置文件。

此版本中的修补程序

Android SDK 管理器

  • Android SDK 管理器现在已集成在 Visual Studio Preferences 中,而不是作为外部应用程序。
  • 已修复:Android SDK 管理器在安装中止后显示错误的组件状态。
  • 已修复:如果有可用更新,会安装但不会选择 Android SDK 工具,这会导致无意卸载组件。
  • 已修复:如果 SDK 组件未发生任何更改,则不会保存默认的 Android SDK 位置。

性能改进

  • 改进了在文档中打开、呈现、键入内容的性能。
  • 优化了键入时完成的后台操作。
  • 缩短了打开解决方案时的加载时间。
  • 优化了搜索栏结果的加载性能。
  • 优化了许多源分析规则。
  • 优化了用户界面操作的低级代码。
  • 修复了会导致 IDE 的内存使用率不断增长的问题。
  • 优化了代码完成、参数提示、语义突出显示。
  • 优化了 Solution Pad 中的文件夹扩展,尤其是包含数百个项的文件夹。
  • 优化了 IDE 首次运行以及后续运行的启动时间。
  • 总之,优化了使用 IDE 的 CPU 使用率和内存流量。

其他改进

  • 已改进:更新了在代理后台系统上使用的标识服务。 这可从密钥链中获取身份验证详细信息或相关提示。 如果之前登录时总是遇到问题,请再次尝试并向我们发送任何反馈,以便我们继续改进代理支持。
  • 已修复:“属性”面板中“约束优先级”显示为 0;无法从“设计器”弹出窗口进行设置。
  • 已修复:添加了为 F# 项目指定平台目标的功能。
  • 已修复:未使用的命名空间代码问题无法正确处理 FSharp.Core 命名空间。
  • 已修复:许多“新建文件”对话框/字符串未进行本地化。
  • 已修复:“新建解决方案”对话框未进行本地化。
  • 已修复:“配置新单一视图应用”对话框中的文本被截断。
  • 已修复: Nuget 向导工具提示显示 xml 字符引用“'”。
  • 已修复:暂停更新时更新程序工具提示为空。
  • 已修复:在 VSTS 上更新 git 存储库失败,出现“null 用户名或密码”。
  • 已修复:首次使用“nameof”方案进行重构时出错。
  • 已修复:如果具有许多最近使用的项目,欢迎页总是丢失最近使用的项目。
  • 已修复:如果容器应用已启用特定于设备的生成,但扩展未启用,则 iOS 生成会出错。
  • 已修复:语法突出显示不存在,局部变量出现 C# 6 字符串内插。
  • 已修复:在某些情况下,用户无法启动 Xamarin Inspector。
  • 已修复:以发布模式生成本机应用(和 iOS)时出现警告。
  • 已修复:.NET Core 类库面向 .NET Standard 而不是 netcoreapp。
  • 已修复:将图像(.png 或 .jpg)添加到 iOS Storyboard 时 IDE 崩溃。
  • 已修复: 添加所有 Google Play Services 包文件时失败,出现“System.AggregateException: 发生了一个或多个错误。 ---> System.ArgumentNullException: 值不能为 null.v 参数名称: packageIdentity.Version”。
  • 已修复:快速修复右键单击子菜单时卡在“正在加载 …”页面。
  • 已修复:单击 Android SDK 管理器的“位置”选项卡中的“...”文件浏览器 选项时,文件浏览器不会显示 SDK 位置。
  • 已修复:F# .NET Core 不编译。
  • 已修复:登录到 MS 帐户时提示输入访问代理服务器 graph.windows.net 的凭据。
  • 已修复:某些 F# 项目的“查找引用”和“查找派生类型”中出现死锁。
  • 已修复:尝试在 Visual Studio for Mac 中添加新 iOS 帐户时出现 Null 引用异常。
  • 已修复:将 .NET Standard 项目添加到现有解决方案/目录结构时会重写/重新设置磁盘上的所有源代码格式
  • 删除必须安装特定 .NET Core 版本(预览版 2)才能使用 .NET Core 2.0 的要求。 现在支持更高版本的预览版和 .NET Core RTW。

发布日期:2017 年 6 月 2 日 - Visual Studio for Mac 7.0.1.24

此版本修复了一些 bug 和内存泄漏问题。

Android SDK 管理器

  • 已修复:SDK 许可证未正确包装。
  • 已修复:“取消”按钮不会将标签更改回“安装更新”。
  • 已修复:卸载最新版 SDK 工具后,所有 SDK 工具都会被卸载。
  • 已修复:能够在更新过程中修改组件。
  • 已修复:由于权限问题,无法使用独立安装程序下载的 SDK 工具。
  • 已修复:无法安装先前删除的组件。
  • 已修复:SDK 工具 25.2.5 无法安装问题。

其他问题

  • 已修复:使用并排显示文档窗口还原文档的问题。
  • 已修复:当前带 .NETStandard/new csproj 格式可移植库的上下文中不存在名称“InitializeComponent”。
  • 已修复:Android 部署在发布模式下无法静默。
  • 已修复:“快速修复”不执行任何操作。
  • 已修复:无法在“编辑引用”对话框中移除引用。
  • 已修复:将 iOS Forms PCL 应用上传到“测试云”时无法生成步骤,显示“未知 MSBuild 故障”。
  • 已修复:无法检查 .Net core 应用程序中的变量。
  • 已修复:所有文件中显示 F# 调试命令。
  • 已修复:F # Xamarin 窗体模板不还原程序包。
  • 已修复:调试 .NET Core 应用程序期间进行线程选择时调用堆栈消失。
  • 已修复:按住 shift 键和向下键连续选择通过视区的文本。
  • 已修复:还原程序包时 UI 锁定。
  • 已修复:编辑器不呈现完整文本。
  • 已修复:使用 Apple 事件打开文件时,解决方案加载之后文档打开的排序问题。
  • 已修复:重命名文件以匹配文件中删除的类名称。
  • 已修复:FooButton_Clicked 处理程序完成不生成方法存根。
  • 已修复:分割屏幕会导致菜单项被禁用。

Visual Studio for Mac 中的新增功能

核心功能

Visual Studio for Mac 能够满足你对现代 IDE 的所有期望,包括功能完整的源代码编辑器、代码搜索和导航、功能强大的调试器、可自定义的工作区、Git 集成和丰富的扩展系统。

其他功能包括:

  • 基于 Roslyn 的 C# IntelliSense、重构、分析器和代码修复。
  • 基于 NuGet 的程序包管理。
  • Visual Studio 兼容的项目格式。
  • MSBuild 生成引擎。
  • 集成单元测试。
  • 对 F# 的支持。

.NET Core 支持

.NET Core 平台用于创建在可 Windows、Linux 和 Mac 上运行的应用程序。 Visual Studio for Mac 提供对加载、创建、运行和调试 .NET Core 项目的支持。

若要运行 .NET Core 项目,应该下载和安装 .NET Core SDK。

.NET Core 支持包括:

  • C# 和 F# IntelliSense。
  • 控制台、库和 Web 应用程序的 .NET Core 项目模板。
  • 完整的调试支持,包括断点、调用堆栈、监视窗口等。
  • NuGet PackageReferences 和基于 MSBuild 的还原。
  • 集成单元测试支持使用 .NET Core SDK 附带的 Visual Studio 测试平台进行运行和调试测试。
  • 从旧的 project.json 格式迁移。

Web 工具

Visual Studio for Mac 添加了针对 HTML、CSS 和 JSON 文件的新的 Web 工具支持。

HTML

  • 新的 HTML 模板。
  • 改进的智能缩进和格式设置。
  • 改进的着色处理功能。
  • 改进的 Intellisense。
  • 代码折叠(必须启用)。
  • Unminify 命令。
  • 改进的代码模板(片段)。
  • 使用 <div> 环绕选定内容。
  • 可以将选定文本向上/向下移动的向上/向下选项。

CSS

  • 改进的智能缩进和格式设置。
  • 改进的着色处理功能。
  • 改进的 IntelliSense。
  • 代码折叠。
  • 多个代码模板(片段)。
  • 可以将选定文本向上/向下移动的向上/向下选项。

JSON

  • 有权访问 schemastore.org 的架构选择器。
  • 从架构进行验证。
  • 从架构进行 IntelliSense。
  • 改进的智能缩进和格式设置。
  • 改进的着色处理功能。
  • 注释/取消注释。
  • 引号注入和大括号匹配。
  • 可以将选定文本向上/向下移动的向上/向下选项。

Xamarin

通过对 Xamarin 的卓越支持,可以开发适用于 Android、macOS、iOS、tvOS 和 watchOS 的丰富本机体验。 使用 Xamarin.Forms 跨平台应用程序可以在 Android、iOS 和 macOS 之间共享基于 XAML 的 UI 代码,而不会限制对本机功能的访问。

这包括:

  • 构建、部署、调试和分析。
  • 适用于 iOS 和 Android 的拖放式 UI 设计器。
  • Xamarin.Forms 的实时预览。
  • 兼容 .NET 标准的框架。
  • 对本机 API 的绑定。

多平台应用模板

现在,使用多平台 Xamarin.Forms 应用本机应用项目模板可以快速创建多平台移动应用及其云后端。

这些模板可以创建多个项目:通过共享的项目共享代码的 Xamarin.iOS 应用项目和 Xamarin.Android 应用项目,以及实现应用后端服务的 .NET Core Web API 项目(图 1)。

Debugging with .NET Core

(图 1)使用 .NET Core 调试

将 ASP.NET Core Web 应用发布到 Azure 应用服务

可以将 ASP.NET Core Web 应用发布到 Azure 应用服务(图 2)。

Publish to Azure content menu

(图 2)发布到 Azure 内容菜单

若要发布 Web 应用,请在“Solution Pad”或“项目”菜单中选择“发布|发布到 Azure”命令。 然后选择要部署到的应用服务,或者新建一个 Azure 应用服务(图 3)。 发布的输出将记录到“发布”输出板,并且将在项目中的“属性”>“PublishProfiles”下创建发布配置文件。

Publish a new app service

(图 3)发布新的应用服务

在项目中定义的所有发布配置文件都将显示为“发布”菜单中的选项,所以无需再次选择“应用服务”即可对其进行部署。

多进程调试

项目具有“项目运行配置”,可以指定运行项目的选项和参数。 在工具栏中的下拉列表中可以查看和更改当前活动的“运行配置”。

在 Visual Studio for Mac 的“解决方案运行配置”窗口中可以同时启动多个项目。 可以在“解决方案选项”对话框中创建解决方案运行配置。 调试移动应用与其后端服务的交互方式时,此功能非常有用。

TextMate 包

Visual Studio for Mac 支持 TextMate 语言包,可使用此语言包添加:

  • 编辑器颜色主题。
  • 代码片段。
  • 新语言的语法,启用突出显示以及基本 IntelliSense。

可以在“首选项”>“文本编辑器”>“语言包”中添加 TextMate 包。

iOS

音频设备向导

新的音频设备扩展向导(图 4)增添了 3 个选项,可用于自定义音频设备项目模板的 plist。

  • 音频设备类型
    • 乐器
    • Generator
    • 效果
    • 音乐效果
  • 子类型代码:必须正好是 4 个字符。
  • 制造商代码:必须正好是 4 个字符。

Audio Unit Wizard

(图 4)音频设备向导

watchOS 扩展向导

在 Xcode 8.3 中,Apple 引入了 watchOS 扩展(与 iOS 扩展类似),第一个引入的是 Intents 扩展 (Siri)。

已更新 watchOS 扩展向导(图 5)以支持 watchOS 扩展,且现提供专用的 Intents 扩展模板。

watchOS extension wizard

(图 5)watchOS 扩展向导

其他改进和 Bug 修复
  • 现可在自动完成窗口中处理 DeprecatedObsoleted 属性。 这使得过时的 Xamarin.iOS 和已弃用的 API 显示为删除线。
  • 部署到设备时会显示进度栏。 此功能对 watchOS 非常有用。 (需要 Xamarin.iOS 10.5.0.323+)。
  • 使用 Xamarin.iOS 中已知的 OS 版本来填充部署目标下拉列表。
    这样操作有两个优点:我们可以提供每个应用扩展类型的准确最低版本,并且可以避免显示 OS 版本(基于 Xcode,Xamarin.iOS 尚不支持)。

Mac/iOS API 问题分析器

  • 触发分析器时修复重复的标记。
  • 从属性中获取“消息”(框架中解释为什么 API 已弃用/过时的信息),并将该信息附加到不同的可用性消息。
  • 更新所有可用性消息,以提高清晰度。
  • 通过在可用性消息中使用符号名称来提高清晰度,从:
    API Usage Issue: this API requires iOS 10.0 or later
    更改为:
    'MyMethod' is only available on iOS 10.0 or newer

Android

  • 新的 SDK 管理器

Visual Studio for Mac 自带 Android SDK 管理器(图 6)。

Android SDK Manager window

(图 6)Android SDK 管理器

  • 现在是通过 /t:Install msbuild 目标将项目部署到设备或仿真程序。 以前,Visual Studio for Mac 使用自己的内部逻辑将应用程序部署到设备,现在则使用可从终端利用或在 Windows Visual Studio 中使用的相同公用目标。 这样做的好处之一是现在有更好的日志可用于诊断部署问题。

  • 新绑定项目的默认值现为 class-parse。 它可以直接分析 Java 字节码而不需要 JVM。 现可从包含调试符号的 Java 字节码提取参数名称。 例如,使用 javac g 编译的字节码。 class-parse 也不会“跳过”从无法解析的类型继承或者包含无法解析的类型的类。

可访问性

  • 此 Visual Studio for Mac 版本包含对 Voice Over 等辅助技术的支持。 通过这些技术,可访问用户界面的许多部分,例如编辑器和解决方案资源管理器。 但是,此功能仍在开发中,将在未来版本中实现进一步改进。 辅助功能可通过“辅助功能”首选项或通过输入以下命令行启用:

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

    返回页首