面冷心慈的仙人球 · python plot_trisurf ...· 2 周前 · |
霸气的佛珠 · Android studio 导出项目 - ...· 2 周前 · |
细心的豆腐 · getline打开中文路径文件 - CSDN文库· 2 周前 · |
暴走的豆芽 · influxdb查询一条数据 - CSDN文库· 2 周前 · |
重情义的鸡蛋 · handler.postdelayed使用方 ...· 2 周前 · |
爱笑的回锅肉 · 什么是 Azure IoT Central ...· 3 月前 · |
开朗的小刀 · 如何:控制文本框文本更新源的时间 - ...· 9 月前 · |
爱笑的小蝌蚪 · 使用setInterval调用setInte ...· 11 月前 · |
苦闷的围巾 · python - Anaconda : ...· 1 年前 · |
豪气的青蛙 · Kotlin之应用Gson - ...· 1 年前 · |
Visual Studio 2019 版本 16.0 现已停止支持。
为 Visual Studio 2019 版本 16.0 的 Enterprise 和 Professional 用户提供支持,他们将在 2021 年 1 月之前收到针对安全漏洞的修补程序。 此时间范围由以下事实决定:2019 年 12 月,Visual Studio 2019 版本 16.4 已被指定为 Visual Studio 2019 产品的下一个服务基线。 有关 Visual Studio 支持的基线的详细信息,请查看 Visual Studio 2019 的支持策略 。
请参阅 最新版本的发行说明 或访问 Visual Studio 站点下载最新支持的 Visual Studio 2019 版本。
可从 Visual Studio 2019 博客 获取来自 Visual Studio 工程团队的官方产品见解。 其中对 Visual Studio 2019 版本进行了深入介绍。
发布时间:2020 年 1 月 12 日
如果诊断中心标准收集器对数据操作的处理不当,就会存在特权提升漏洞。
Visual Studio 安装程序尝试显示恶意 markdown 时存在远程代码执行漏洞。
发布时间:2020 年 12 月 8 日
当 Visual Studio 克隆恶意软件时,会存在远程代码执行漏洞。
发布时间:2020 年 11 月 10 日
针对 Visual Studio 的 Python 工具创建 python27 文件夹时存在篡改漏洞。 成功利用此漏洞的攻击者可在提升的上下文中运行进程。
发布日期:2020 年 10 月 13 日
发布日期:2020 年 9 月 8 日
如果诊断中心标准收集器对数据操作的处理不当,就会存在特权提升漏洞。 成功利用此漏洞的攻击者可在提升的上下文中运行进程。
如果诊断中心标准收集器对文件操作的处理不当,就会存在特权提升漏洞。 成功利用此漏洞的攻击者可在提升的上下文中运行进程。
如果内存中的对象处理不当,Visual Studio 中会存在远程代码执行漏洞。 成功利用此漏洞的攻击者可能会在当前用户的上下文中运行任意代码。
如果内存中的对象处理不当,Visual Studio 中会存在远程代码执行漏洞。 成功利用此漏洞的攻击者可能会在当前用户的上下文中运行任意代码。
Microsoft ASP.NET Core 分析编码 Cookie 名称的方式存在安全功能绕过漏洞。 ASP.NET Core Cookie 分析器对整个 Cookie 字符串进行解码,这可能会使恶意攻击者设置第二个 Cookie,并对其名称进行百分号编码。
发布日期:2020 年 8 月 11 日
ASP.NET Core 未正确处理 Web 请求时,存在拒绝服务漏洞。 如果攻击者成功利用此漏洞,可能会导致对 ASP.NET Core Web 应用程序拒绝服务。 可以远程利用漏洞,无需进行身份验证。
发布时间:2020 年 7 月 14 日
当因 Windows 诊断中心标准收集器服务未能正确纠正输入而导致不安全的库加载行为时,则存在特权提升漏洞。
在 Visual Studio 中加载软件依赖项时,存在特权提升漏洞。
未经过身份验证的远程攻击者可能通过向 ASP.NET Core 应用程序或其他分析特定 XML 类型的应用程序发布特制请求来利用此漏洞。 安全更新通过限制可在 XML 有效负载中呈现的类型来解决此漏洞。
发布日期:2020 年 6 月 9 日
为了全面解决 CVE-2020-1108,Microsoft 发布了 .NET Core 2.1 和 .NET Core 3.1 的更新。 使用任何这些版本的 .NET Core 的客户都应安装最新版本的 .NET Core。 有关最新版本号和 .NET Core 更新说明,请参阅 发行说明 。
如果诊断中心标准收集器或 Visual Studio 标准收集器未能正确处理内存中的对象,就会存在特权提升漏洞。
如果诊断中心标准收集器服务对文件操作的处理不当,就会存在特权提升漏洞
发布时间:2020 年 5 月 12 日
未经过身份验证的远程攻击者可以通过向 .NET Core 应用程序发布特制请求利用此漏洞。 此安全更新通过纠正 .NET Core Web 应用程序处理 Web 请求的方式修复此漏洞。
发布时间:2020 年 4 月 14 日
当 Microsoft Visual Studio 更新程序服务不当处理文件权限时,会出现特权提升漏洞。 成功利用了此漏洞的攻击者可覆盖本地系统的安全上下文中的任意文件内容。
当 Visual Studio Extension Installer 服务不当处理文件操作时,会出现特权提升漏洞。 成功利用了此漏洞的攻击者可使用已提升的权限删除任意位置的文件。
当专门创建的 URL 被分析并发送至凭据帮助程序时,会出现凭据泄露漏洞。 这可能会导致凭据被发送到错误的主机。
发布日期:2020 年 3 月 10 日
当诊断中心标准收集器无法正确处理文件操作,或 Windows 诊断中心标准收集器服务无法正确纠正输入时,就存在特权提升漏洞。
如果启用了多重身份验证,则在创建 Outlook Web 外接程序时将存在欺骗漏洞
当 Visual Studio Extension Installer 服务无法正确处理硬链接时,存在拒绝服务漏洞。 成功利用此漏洞的攻击者可能导致目标系统停止响应。
发布日期:2020 年 1 月 14 日
远程未经过身份验证的攻击者可以通过向 ASP.NET 应用程序发布特制请求利用此漏洞。 此安全更新通过纠正 ASP.NET Core Web 应用程序处理 Web 请求的方式解决此漏洞。
远程未经过身份验证的攻击者可以通过向 ASP.NET 应用程序发布特制请求利用此漏洞。 此安全更新通过纠正 ASP.NET Core Web 应用程序处理内存的方式解决此漏洞。
发布时间:2019 年 12 月 10 日
Git 遇到同级子模块的目录的子模块名称冲突时,存在远程代码执行漏洞。 成功利用此漏洞的攻击者可以针对目标计算机远程执行代码。 该安全更新通过使用新版本的 Git for Windows 来解决该漏洞,该版本要求用于子模块克隆的目录为空。
Git 使用递归克隆过程中的特定引用以及 SSH URL 解释命令行参数时,存在远程代码漏洞。 成功利用此漏洞的攻击者可以针对目标计算机远程执行代码。 该安全更新通过使用新版本的 Git for Windows 来解决该漏洞,该版本可修复此问题。
非字母驱动器名称绕过
git clone
中的安全检查时,存在任意文件覆盖漏洞。 成功利用此漏洞的攻击者可以针对目标计算机写入任意文件。 该安全更新通过使用新版本的 Git for Windows 来解决该漏洞,该版本可修复此问题。
通过 NTFS 备用数据流克隆和写入 .git/ 目录时,存在远程代码执行漏洞。 成功利用此漏洞的攻击者可以针对目标计算机远程执行代码。 该安全更新通过使用新版本的 Git for Windows 来解决该漏洞,该版本可感知 NTFS 备用数据流。
带有反斜杠和恶意符号链接的树条目突破工作树时,Git 中存在任意文件覆盖漏洞。 成功利用此漏洞的攻击者可以针对目标计算机写入任意文件。 该安全更新通过使用新版本的 Git for Windows 来解决该漏洞,该版本不允许使用反斜杠。
当对子模块进行递归克隆时,Git 中存在远程代码执行漏洞。 成功利用此漏洞的攻击者可以针对目标计算机远程执行代码。 该安全更新通过使用新版本的 Git for Windows 来解决该漏洞,该版本加强了对子模块名称的验证。
当连接到 Live Share 会话的一个客机重定向到由会话主机指定的任意 URL 时,Visual Studio Live Share 扩展中检测到欺骗漏洞。 攻击者可以成功利用此漏洞,使客机打开浏览器并在无需明确同意的情况下导航到恶意 URL。 这是 Live Share 中的“共享服务器”功能,该功能允许在 Live Share 活动会话期间进行自动端口转移。 最新更新通过在浏览主机指定的 URL 前提示 Live Share 客机确认是否同意来解决此漏洞。
发布时间:2019 年 10 月 15 日
如果 Visual Studio 在提取已存档的文件时未能正确验证硬链接,则存在特权提升漏洞。 此漏洞由 Visual Studio 使用的 NPM 包引入,如以下两个 NPM 建议所述 : npmjs.com/advisories/803 和 npmjs.com/advisories/886 。 此版本的 Visual Studio 中包含这些 NPM 包的更新版本。
发布时间:2019 年 9 月 10 日
诊断中心标准收集器服务不正确地模拟特定文件操作时,存在特权提升漏洞。 成功利用此漏洞的攻击者可以获得提升的权限。 对易受攻击的系统拥有非特权访问权限的攻击者可利用此漏洞。 此安全更新可确保诊断中心标准收集器服务正确模拟文件操作,从而解决这一漏洞。
发布时间:2019 年 8 月 13 日
当 Git for Visual Studio 错误地分析配置文件时,其中存在特权提升漏洞。 成功利用此漏洞的攻击者可以在另一个本地用户的上下文中执行代码。 要利用此漏洞,经过身份验证的攻击者需要先修改系统上的 Git 配置文件,再安装完整的应用程序。 然后,攻击者需要使系统上的另一个用户执行特定的 Git 命令。 更新更改了编辑配置文件所需的权限,从而解决了这一问题。
.NET Core 未正确处理 Web 请求时,存在拒绝服务漏洞。 如果攻击者成功利用此漏洞,可能会导致对 .NET Core Web 应用程序拒绝服务。 可以远程利用漏洞,无需进行身份验证。
此更新通过纠正 .NET Core Web 应用程序处理 Web 请求的方式解决此漏洞。
发布时间:2019 年 7 月 9 日
今天已发布 .NET Core 更新,包含在此 Visual Studio 更新中。 此版本解决了安全性和其他重要问题。 有关详细信息,请参阅 .NET Core 发行说明。
如果 Visual Studio 扩展自动更新过程不正确地执行特定文件操作,就会存在特权提升漏洞。 成功利用此漏洞的攻击者可以删除任意位置的文件。 攻击者必须对易受攻击的系统拥有非特权访问权限,才能利用此漏洞。 安全更新通过保护 Visual Studio 扩展自动更新执行文件操作的位置来处理漏洞。
引用特定类型的 XOML 文件可能导致在 Visual Studio 中打开 XOML 文件时执行任意代码。 现在允许在 XOML 文件中使用的类型具有一定限制。 如果打开包含最新未经授权的类型之一的 XOML 文件,将显示一条消息,说明该类型未经授权。
有关详细信息,请参阅 https://support.microsoft.com/help/4512190/remote-code-execution-vulnerability-if-types-are-specified-in-xoml 。
发布时间:2019 年 6 月 11 日
发布日期:2019 年 5 月 14 日
如果诊断中心标准收集器服务不正确地执行特定文件操作,就会存在特权提升漏洞。 成功利用此漏洞的攻击者可以删除任意位置的文件。 攻击者必须对易受攻击的系统拥有非特权访问权限,才能利用此漏洞。 安全更新通过保护诊断中心标准收集器执行文件操作的位置来处理漏洞。
发布时间:2019 年 4 月 30 日
发布时间:2019 年 4 月 18 日
发布时间:2019 年 4 月 9 日
发布时间:2019 年 4 月 2 日
体验 C# 编译器现支持的 8.0 语言功能的预览,包括:
#nullable enable
或在项目级别使用
<NullableContextOptions>enable</NullableContextOptions>
),如果使用
?
注释,则引用类型将被视为可为空,否则将引用类型视为不可为空。 随后编译器分析 null 值的流向,并警告可能的不安全使用情况。
switch
表达式
:在表达式上下文中提供类似
switch
的语义。
Range
和
Index
类型,包括范围的
x..y
文字语法。
IAsyncEnumerable<T>
表示的
异步流
可以与
await foreach
异步枚举,并且可以使用
async IAsyncEnumerable<T>
迭代器方法生成。
using
声明:在当前块的末尾进行释放,但不增加嵌套级别。 可以通过实现公共
Dispose()
方法来处理
ref
结构。
static
本地函数:标有
static
的本地函数不能引用封闭函数中的
this
或变量。
x
为
null
,
x ??= y;
仅会将
y
赋值给
x
。
有关详细信息,请参阅 Mads 提供的 C# 8.0 概述 。
有关更多详细信息,请参阅 C# 语言功能状态 和 重大更改 。
此外, 默认情况下 ,可以在 Visual Studio 中使用更现代的 C# 语言功能。
XAML 调试工具:
新的启动窗口提供简化的启动体验,可帮助在启动 Visual Studio 时快速访问代码。
当某个特定对象的属性值在 .NET Core(3.0 或更高版本)应用程序中更改时,现可使用数据断点中断,此功能最初为 C++ 所独有。 它们是绝佳的替代方案,如果有上百个对象调用该函数,则只需在属性的 setter 上设置断点,因为数据断点可以专注于特定对象的属性,即使该属性不在范围内,而前者可能导致经常出现不相关的中断 。
我们更新了用于在“自动”、“局部变量”和“监视”窗口中搜索的 UI,界面更加简单。 “深度搜索”功能已更改为一个下拉菜单,因此可快速选择初始搜索和后续搜索所需的深度。
dotnet tool install -g dotnet-format --version 3.0.0-beta4-19105-10
过期,扩展创建者需要在其扩展中使用 Visual Studio SDK 的 NuGet 包时,必须单独一个一个地引用。 各个包的版本并不总是相一致,因此通常导致在编译时出现依赖项冲突和运行时问题。
若要解决这些问题,请使用名为 Microsoft.VisualStudio.SDK 的新包,该包中包含构成 Visual Studio SDK 的所有包的依赖项。 使用此包可解决版本不匹配的问题以及轻松知晓要使用的版本。 只需使用对应于扩展支持的 Visual Studio 的最低版本的包版本,即可访问整个 SDK。
现在,只存在 15.9 版的 SDK 包,但在随后的几个月里将在版本 14.0 的基础上发布更多包版本。
VSIX Project 模板已进行过多次更新,旨在简化该模板并使其更易于使用:
已创建一个新的空 VSIX Project 模板,该模板与VSIX Project 模板相同,只是未包含 AsyncPackage 类。 它还应用统一的 SDK NuGet 包,用于为 MEF 扩展和其他无包扩展类型提供一个良好的起点。
查看扩展是被标记为免费、付费还是试用并不是那么容易。 现在这种情况已发生改变,在“扩展和更新” 对话框内部,每个扩展都将被清晰地标记为试用或付费。 没有试用/付费标签的扩展即为免费。
“测试”窗口中以前未记录但标记为公共的其他 API 已添加到 弃用列表 中。
15.0
更改为
Current
。
MSBuild.exe
现包含在
%VSINSTALLDIR%\MSBuild\Current\Bin\MSBuild.exe
中。
对于 Visual Studio 2019 之前的每个版本,默认的 C# 语言版本始终等同于“最新版本” 。 在 Visual Studio 2017 中,C# 发展并发布了三个次要版本:7.1、7.2 和 7.3。 但是,新项目仍然默认为 C#7.0。 对于想要使用新功能但不得不手动更改每个新项目的语言版本的 C# 开发人员而言,这种结果令人沮丧。
若要解决此问题,默认的 C# 语言版本由其目标框架确定:
这允许默认使用最新的稳定 C# 语言功能,并且在使用 .NET Core 预览时,使用与 .NET Core 3.0 预览一致的 C#8.0 预览语言功能。
如果在项目或道具文件中通过
LangVersion
指定语言版本,则该语言版本将覆盖先前描述的默认值。
vcpkg integrate install
后在 IDE 中打开的 CMake 项目,将自动为其检测并启用 vcpkg 工具链。 可通过在 CMakeSettings 中指定空工具链文件来关闭此行为。
Visual Studio 2019 中的 F# 改进主要包括三个方面:
此版本包含 F# 4.6 语言:
F# 和编译器以及 FSharp.Core 已经可见许多改进,尤其是来自开放源代码参与者的改进:
+
的使用,以尽可能实现最少的
String.Concat
调用数 (
#5560
)。
Attribute
类继承时,用户将收到来自
Vasily Kirichenko
的警告。
AssemblyInformationVersionAttribute
值现在支持任意值,以支持 SourceLink 等方案(
#4822
)。
Module
后缀添加到递归模块中的模块,以匹配唯一差异是通用参数的类型的 bug (
#5794
)。
uint16
文字后缀 (
#5712
)。
async
,而是 引用“计算表达式”,由
John Wostenberg
实现 (
#5343
)。
.dll
时的错误消息 (
#5416
)。
Visual Studio 2019 中 F# 的另一个重点关注领域是中型和大型解决方案的性能。 我们解决了一些长期存在的问题,其中一些可以追溯到 Visual Studio 的第一版 F# 工具。 我们也从优秀的 F# 开源社区获得了一些帮助。
除了性能改进之外,Visual Studio 2019 的 F# 工具还进行了其他各种改进:
open
语句代码修复现在默认为在文件顶部添加
open
语句。
match!
使结构指南和后续作用域的代码大纲节点失效的 bug (
#5456
)。
byref
、
outref
和
ref
值正确地标记记录字段的颜色 (
#5579
)。
'
字符的 bug (
#5604
)。
inherit
子句中构造函数的 IntelliSense 无法显示主构造函数的 bug (
#3699
)
我们已经完全迁移了 F# 和 F# 工具代码库,以便使用 .NET SDK。 这极大地简化了开发人员的贡献过程,尤其是如果他们不使用 Windows 时。 此外, Jakob Majocha 还根据代码库的变化帮助新参与者清理文档。
根据客户反馈,Visual Studio 2019 包含管理 Python 环境的全面体验:
我们改进了 Azure DevOps 中的 Git 工作项体验。
language=regex
的注释时,可以识别正则表达式字符串。 此版本中包含的语言功能包括分类、大括号匹配、突出显示引用和诊断。
如果安装了 SDK 预览版,则可使用此版本创建面向 .NET Core 3.0 的 ASP.NET Core、控制台和类库项目。
如果使用的是 Visual Studio RC,则还需要转到“工具”>“选项”>“项目和解决方案”>“.NET Core”,再勾选“使用 .NET Core SDK 预览版”复选框 。 如果在使用 Visual Studio 预览版,则无需执行此操作。 有关此设置及其行为的详细信息,可参阅 面向 Visual Studio 2017 版本 15.9 的 .NET Core 工具更新 。
此外,可使用“dotnet new”命令为 .NET Core 3.0 创建 Windows 窗体或 WPF 项目。 然后,可在 Visual Studio 2019 中打开这些项目。
从此版本开始,.NET SDK 样式项目的项目文件将作为 Visual Studio 中的一类文件类型 。 现支持以下操作:
ctrl + T
) 按名称查找项目文件
此外,在控制台应用中,.NET SDK 样式的项目现将通过
F5
和
ctrl + F5
应用
新集成的控制台
体验。 这会使从 Visual Studio 启动控制台应用程序的体验一致化:
F5
,当应用执行完毕后,控制台窗口不会自动关闭。 无需再将
Console.Read()
调用添加到控制台应用中。
ctrl + F5
,将在应用的后续运行中重复使用控制台窗口。 不再需要关闭控制台窗口的负载。
在新的控制台窗口打开时,按一个键即可使其自动关闭,也可以选择“工具”>“选项”>“调试停止时自动关闭控制台”下的选项将其关闭 。
现在已将
许可证表达式和许可证文件的支持
添加到项目属性页中。 这与在 NuGet 中弃用
licenseUrl
的更改一致。
可在 16.0 16.0 预览版 2 16.0 预览版 3 和 16.0 预览版 4 里程碑中找到问题和拉取请求的完整列表。
.NET 重构和代码修复程序:
$@"
替换
@$"
#nullable enable|disable
按读/写对引用进行分类。
为 csharp_prefer_braces 添加 Editorconfig when_multiline 选项。
.NET Compiler Platform SDK(又名 Roslyn )提供了新的分类颜色。 可以在“工具”>“选项”>“环境”>“字体和颜色”中调整这些颜色,也可以在“环境”>“预览功能”中,通过取消选中“使用增强颜色”复选框来关闭这些颜色 。 我们十分欢迎你提供有关此更改对你的工作流所产生的影响的反馈。
在 Visual Studio 2019 中,性能向导中提供的分析体验已移至性能探查器。 可以在性能探查器的检测工具中找到用于采样和检测的 CPU 使用工具。 通过此更改,不再需要性能向导,已从 Visual Studio 2019 中将其删除。 此外,VS 性能命令行工具中的采样选项已被删除,即将推出的预览版中将发布替换命令行工具。
Visual Studio Kubernetes 工具以前作为 Visual Studio 2017 的单独扩展提供,现已集成到 Visual Studio 2019 的 Azure 开发工作负荷中 。
要将 Kubernetes 支持添加到新项目中,请打开 Visual Studio 并选择“创建新项目”选项 。 在“创建新项目”窗口中,搜索 Kubernetes 并选择“适用于 Kubernetes 的容器应用程序”项目模板 。
单击“下一步”,然后输入项目名称、位置和解决方案名称 。 然后单击“创建” 。 选择要用于该项目的 ASP.NET Core 应用程序模板,然后单击“确定” 。 Visual Studio 将自动创建 Dockerfile 和 Helm 图表,可用于生成新的应用程序并将其部署到 Kubernetes 群集。 可根据需要修改这些项目。
此外,还可以向现有 ASP.NET Core 应用程序添加针对 Kubernetes 的支持。 为此,请在 Visual Studio 2019 中打开项目。 在解决方案资源管理器中,右键单击项目,指向“添加”,然后单击“容器业务流程协调程序支持” 。
在“添加容器业务流程协调程序支持”对话框中,选择“Kubernetes/Helm”并单击“确定” 。 Visual Studio 将自动创建 Dockerfile 和 Helm 图表(在名为 charts 的文件夹中),可用于生成应用程序并将其部署到 Kubernetes 群集 。 如果已存在这些项目中的任何一个项目,不会将其覆盖。 可根据需要修改这些项目。
向新项目或现有项目添加 Kubernetes 支持时,Visual Studio 会询问是否要为应用程序创建可公开访问的终结点。
如果单击“是”,Visual Studio 将为应用程序配置 Helm 图表,以便在将应用程序部署到 Kubernetes 群集时创建 Kubernetes Ingress 对象 。 通过修改 Helm 图表可随时更改此选项。
将 Kubernetes 支持添加到新项目或现有项目后,可使用 Azure Dev Spaces 功能在活动的 Azure Kubernetes 服务 (AKS) 群集中轻松生成、运行和调试应用程序。 这非常有助于在实际 Kubernetes 群集的上下文中测试项目或调试属于超大型应用程序的服务,而不必在本地复制整个应用程序。 Azure Dev Spaces 还包含可以使开发团队共享 AKS 群集的功能。 有关 Azure Dev Spaces 的详细信息,请参阅 Azure Dev Spaces 文档 。 要开始使用此服务,请确保在 Visual Studio 中选择 Azure Dev Spaces 作为调试启动目标。
首次在 Dev Spaces 中启动项目之前,请配置要使用的 Azure 订阅和 AKS 群集。 此外,请选择要运行该项目的空间。
通常情况下,团队在默认空间运行整个应用程序的最新稳定版本 。 然后,在默认空间的子空间运行正在处理的服务版本 。 现在没有必要在子空间运行其他服务;Dev Spaces 会自动将来自服务的调用路由到在默认空间运行的服务的稳定版本 。 有关如何进行设置的详细信息,请参阅 Azure Dev Spaces 文档 中的团队开发教程。 选择正确的订阅、群集和空间后,单击“确定”才能继续进行 Dev Spaces 配置 。 如果所选的群集还没有关联的 Dev Spaces 控制器,请在以下对话框中单击“确定”,自动创建一个 。
控制器的创建需要 2 分钟左右。 单击 Visual Studio 窗口左下角的“后台任务”按钮可查看其状态 。
准备好 Dev Spaces 控制器后,按 F5 或单击工具栏上的 Azure Dev Spaces 调试按钮即可在 AKS 中调试项目 。
Dev Spaces 会将代码同步到 Azure、生成包含这些代码的容器映像,然后使用项目中定义的 Helm 图表将其部署到 AKS 群集。 Visual Studio 将打开与群集中运行的服务建立的远程调试连接,这样便可以像调试本地运行的服务一样与其进行交互。
此版本改进了工作负载大小以及 Android 生成性能和可靠性,并提高了 Xamarin.Android 和 Xamarin.Forms 的生产力。
对性能进行了改进,旨在缩短新建 Xamarin 项目所需的时间,便于更快地开始生成应用。 现在还将模板使用的 NuGet 包加入工作负荷安装项中,以缩短包还原时间(尤其是在低带宽或脱机情况下)。 在某些情况下,这些改进可使新 Xamarin 项目完全加载和还原的时间减少 50% 左右。
现可在生成项目时查看更详细的生成进度信息。 在生成期间单击左下角的“后台任务”图标,将显示正在运行的当前生成目标。 这有助于确定生成(目标需要很长时间才能完成的情况)是否仍在运行。
不再需要为 Xamarin.Forms XAML 预览器生成项目以显示代码的预览! 如果 XAML 文件中有自定义控件,则可能需要生成项目以预览这些控件,或者 将这些控件选择加入设计时渲染 。
你现在可以在不同的 Android 和 iOS 设备之间切换,以使用新设备下拉菜单预览 Xamarin.Forms XAML。
现在可以在属性面板中编辑 Xamarin.Forms 控件、单元格和布局的最常用属性,并查看 XAML 中立即反映的这些更改。
我们更新了 Xamarin.Forms 模板以使用最新的 Xamarin.Forms 版本 ,并为 Xamarin.Forms Shell 应用添加了新的模板选项。 Shell 旨在简化应用,同时提高开发人员的工作效率,专注于渲染速度和内存占用率。 此模板提供适用于 Android 和 iOS 的引导 Shell 应用。
在 Visual Studio 2017 版本 15.9 和 Visual Studio for Mac 7.7 中,我们进行了 初始生成性能和生成准确性改进 。 在 Visual Studio 2019 和 Visual Studio for Mac 7.8 中,我们加快了生成和部署速度。
.csproj
中添加 MSBuild 标志:
<AndroidUseAapt2>True</AndroidUseAapt2>
在 Visual Studio 2019 中,创建 Android 仿真器图像更加轻松。 我们还继续与 Windows 团队合作,参与 Windows 10 版本 1809 的 2018 年 10 月更新,以提高在 Hyper-V 上运行时 Android 仿真器的性能。
我们发布了一组 初始生成性能改进 。 到目前为止,与之前的版本相比,Xamarin.Android 9.1.1+ 提供显著的生成性能改进。 查看 Xamarin.Android 15.9 和16.0 生成性能比较 ,了解详细信息。
到目前为止,在未对应用中打包的任何资产、资源、共享的本机库或继承自
Java.Lang.Object
的用户定义的类进行任何更改的情况下,快速部署会跳过重新生成或重新部署 Android 包(.apk 文件)的步骤,从而缩短了增量部署时间。
增强的快速部署扩展了快速部署支持,现可应用于共享的本机库和继承自
Java.Lang.Object
的类。 使用上述增强功能的快速部署功能,只需在少数情况下(例如,当 AndroidManifest.xml 文件因添加新的
Android.App.Application
或
Activity
子类而发生更改时)生成新的 .apk 文件
。
当前预览版默认不启用这些增强功能
。 要启用它们,请在 .csproj 文件中将
$(AndroidFastDeploymentType)
MSBuild 属性设置为
Assemblies:Dexes
:
<PropertyGroup>
<AndroidFastDeploymentType>Assemblies:Dexes</AndroidFastDeploymentType>
</PropertyGroup>
Xamarin.Android 中的新一代 Dex Compiler (d8) 和 Code Shrinker (r8) 支持
Xamarin.Android 现支持最新的 Android dex 编译器 (d8) 和 Code Shrinker (r8)。
要启用这些功能,请在 .csproj 文件中,分别将 $(AndroidDexTool)
和 $(AndroidLinkTool)
MSBuild 属性设置为 d8
和 r8
- d8 是新一代 dex 编译器,运行速度更快,生成的 .dex 文件更小,运行时性能更好。
<PropertyGroup>
<AndroidDexTool>d8</AndroidDexTool>
</PropertyGroup>
- r8 是一种实现收缩和缩小的新工具,可将 Java 字节代码转换为优化的 dex 代码,取代了对 ProGuard 的需求。
<PropertyGroup>
<AndroidLinkTool>r8</AndroidLinkTool>
</PropertyGroup>
有关 d8 和 r8 的详细信息,请参阅文档。
Xamarin.Android Designer 增强功能
我们对拆分视图中的交互提供了大量有助于提升工作效率的增强功能强。
- 直接从工具箱拖放到源编辑器,帮助快速构建 Android 布局。
- 直接从源编辑器中的 XML 定义范围中选择元素。 我们通过将插入点位置与相应的 Android 视图同步来实现此功能,这样即可直接从编辑器快速访问属性面板中的元素属性。
- 对 XML 代码使用内联颜色预览,以便查看控件中使用的颜色。
- 使用快速信息功能,将鼠标悬停在某个值上以查找更多相关信息,例如该值的定义位置或颜色的十六进制值。
改进了 Xamarin.Android Designer,同时还提供约束布局初始支持
我们已开始努力改进 Android Designer 的启动速度。 作为此项工作的一部分,我们还改进了设计器在加载时提供的消息传递功能。
除了这些改进之外,Android Designer 现在本身支持 Android Pie (9.0) 并为 ConstraintLayout
属性提供自动完成功能。
使用 Xamarin.Android Designer 获得更出色的 XML IntelliSense 和注释优化
使用 IntelliSense 将小组件添加到布局时,现提供完整代码片段,以便从一开始就提供所需的属性。
我们为 Android XML 布局添加了智能注释和取消注释功能。
使用“转到定义”功能来提高工作效率,并在 Android 资源文件和 AndroidManifest.xml 中使用 XML IntelliSense
现可在资源 URL 上通过“Ctrl +单击”,导航到定义它们的文件或行。
除了布局(颜色、字符串、可绘制资源、Android 清单等)之外,现支持对其他 Android XML 文件应用 IntelliSense/自动完成功能。
通用 Windows 平台
- IntelliCode 扩展现在支持 XAML。
- 为了降低 Visual Studio 设置的复杂性并减小其大小,已从 Visual Studio 安装中删除了 Windows Phone 仿真器。 现在需要手动下载该仿真器。
- 已删除 Windows 10 Fall Creators Update(内部版本 16299)之前面向 Windows 10 SDK 的 UWP 应用 XAML 设计时工具。 要使用 XAML 设计器 XAML 编辑器,请将应用程序的目标重新设置为 Windows 10 版本 1709 或更高版本。
- 不再支持使用
project.json
定义 NuGet 依赖项的 UWP 测试项目。 必须升级项目才能使用新的 PackageReference
格式。
- Visual Studio 2019 不再支持 UWP JavaScript 应用。 无法创建或打开 JavaScript UWP 项目(扩展名为
jsproj
的文件)。 有关详细信息,请参与有关创建在 Windows 上运行良好的渐进式 Web 应用 (PWA) 的文档。
- 你可以继续像以前一样附加到 JavaScript UWP 应用,但 Visual Studio 2019 中不再提供 JavaScript 分析工具(网络、CPU 和内存探查器)。
Office 工具模板更新
在 Visual Studio 2019 中,我们对 Office、SharePoint 和 VSTO 模板进行了一些更改。
- Visual Studio 2017 15.9 中添加的 SharePoint 2019 模板也可在 Visual Studio 2019 中使用。
- 我们已删除对 SharePoint 顺序工作流或状态机工作流的支持。 虽然无法在 Visual Studio 2019 中创建或打开这些工作流,但可以继续在以前的 Visual Studio 版本中编辑它们。
- Office 2010 模板将不再可用。 但是,仍可以在 Visual Studio 2019 中打开现有 Office 2010 项目。
- 已重命名 Office 2013 和 2016 模板,以反映它们支持 Office 2013 及更高版本。
团队资源管理器和 Azure DevOps
我们发布以开发人员为中心的简化型新体验,用于将团队资源管理器连接到 Azure DevOps 项目。
根据分配给你的工作项、你正在关注的工作项、你在讨论中提到的工作项以及基于你的活动的工作项筛选和透视你的视图,从而关注相关工作项。
- 在每个视图中,可以创建内联工作项、执行简单的内联编辑、将工作项标记为完成,以及将工作项关联到挂起的更改。
从工作项创建本地分支,该工作项可自动将工作项与对该本地分支进行的更改关联。 这是默认体验。 如果要切换到旧版体验,可以在 Visual Studio 中设置工作项体验。
请注意,此新体验仅适用于 Git 存储库。 TFVC 存储库的新体验将在以下更新中提供。
在挂起的更改提交消息中执行 #mentions 时搜索工作项。 有关更多详细信息,请参阅使用“工作项”查看和添加工作项页。
由于在 Azure DevOps 中的采用率较低,已从 Visual Studio 2019 的 Team Foundation Server Office 集成 2019 插件中删除对 Microsoft Project 的支持。 现在需要将工作项导出到 Excel 并手动将它们粘贴到项目中。
已从 Visual Studio 2019 的 Team Foundation Server Office 集成 2019 插件中删除对 PowerPoint 的支持。 但是,用户仍然可以在 PowerPoint 中创建情节提要,并将它们手动链接到 Azure DevOps 中的工作项。
Application Insights 和 HockeyApp
- Visual Studio 2019 中已删除 Application Insights 趋势窗口,改用功能更丰富的替代方案。 相反,可以使用 Visual Studio 中的 Application Insights 搜索窗口或 Azure 门户的 Application Insights 中一组功能丰富的诊断工具。
- 已删除用于添加 HockeyApp SDK 和创建新 beta 发行版的向导。 建议使用 HockeyApp 的后续版本 Visual Studio App Center。 用户仍然可以正常使用 HockeyApp,除非 Visual Studio 中没有这些快捷方式。
Visual Studio 2019 RC 中已修复的问题
最近更新时间:2019 年 4 月 26 日
- 值不能为空。 参数名称:向 TFS 签入代码时 pUnk。
- 基于 xml 的文件(如 csproj)中添加了不必要的“子类型设计器”。
- TLS 1.0:请求已终止:未能创建 SSL/TLS 安全通道。
- 解决方案资源管理器:触屏板手势滑动太过敏感。
- [MSConnect 1173006] 文件关闭时,任务列表在筛选器设置为“整个解决方案”的情况下不显示任务/待办事项。
- Xamarin.iOS 无法为图像视图选择图像资产。
- 灾难性错误 C1001:编译器中发生内部错误。
- Visual Studio 2019 - EF6 edmx文件无法保存-VS 2019 预览版 1 - 无法保存 EF6 edmx 文件。
- [WebKit] 未定义的类不允许作为编译器内部类型特征“__is_assignable”(回归)的参数。
- Visaul Studio 2019: nuget 包管理器对比度不佳。
- 团队资源管理器 - 更改内容:面板未调整到团队资源管理器窗口。
- Visual Studio 2017 SQL Server 对象资源管理器服务器列表不会保存。
- linux-x64 模式下的智能感知问题。
- 索引已超出范围。 必须为非负值并小于集合大小。参数名称:索引。
- “Visual Studio 2017 撤消”无法正常运行/停止运行(再次报告!!!!).
- IntelliSense 不适用于在 WSL 下创建的文件。
- Intellisense 错误:C++ 11 静态 constexpr 成员初始化导致“成员可能未初始化”。
- 切换进/出调试时,VS 不会恢复窗口位置。
- 每次启动 VS2019 Preview 2.2 时,都会重新加载第三方工具箱项目。
- 更新到 VS2019 预览版本 3 后,“设置为启动项目”会导致 IDE 崩溃 。
- Visual Studio 2019 构建 Visual Studio 2017 C++ 项目失败。
- 修复了工具箱刷新问题。
- 工具箱控件使得 vssettings 文件过大。
- SSDT:对在执行新的数据比较函数时登录失败的错误修复。
- SSDT:对在执行架构比较时“源代码不可用”错误的修复。
- SSDT:对在执行架构比较时“生成脚本”无法生成脚本的修复。
- 发现文件“找到下一个匹配项”UI 不正常工作。
- 发现文件持续默认为当前文件。
- 快速引用会冻结 VS 2019 RC。
- PackageId:MsSqlCmdLnUtils;PackageAction:Install;ReturnCode:1603;。
- 错误列表的范围为“当前文档”,因此不显示错误。
- 不能使用对 PropertyInfo.Name 值使用条件断点。
- 在文件末尾分析宏时,Visual Studio 崩溃。
- 在 Visual Studio 2019 中搜索时速度缓慢。
- 启动调试时 Visual Studio 挂起。
- Visual Studio 2019 RC 中不支持 vdproj。
- Visual Studio 安装程序欢迎图像包含冒犯性的中文元素。
- Visual Studio 2019 RC 重要扩展兼容性中已删除 VSIX 扩展先决条件。
- 从头开始创建项目”屏幕忽略了所选的项目文件夹。
- 在使用项目菜单或选择“管理配置”下拉菜单时不显示“cpp 属性为”对话框。
- Visual Studio 2019 生成工具 - 开发人员提示标题显示“Visual Studio 2017 开发人员命令提示”。
- 反馈工具的相关德语翻译:“帮助”>“发送反馈”>“报告问题”。
- 自动完成功能,如果双击候选项,会丢失输入焦点,需要单机编辑器才能继续输入-AutoComplete function, if you double-click the candidate, will lose the input focus, need a stand-alone editor to continue to enter。
- 在多个监视器配置中,上下文菜单有时位于错误的监视器上。
- Visual Studio 2019 与 QQ 拼音冲突。
- 不能拖动已最大化的 Visual Studio 窗口。
- 遵循 C++ /CLI 15.9.5 ISO C++ 最新草案标准(从 15.9.5 版本开始)时出现访问冲突。
- 即使 IDE 有响应(“正在准备解决方案”、“正在创建项目”和“编辑并继续”等),模式进度对话框仍永久打开。
- PackageId:OpenJDKV1;PackageAction:Uninstall;ReturnCode:0;。
- Visual Studio 2019 工具箱始终显示“正在初始化”。
- Razor 文件 (.cshtml) 中的 Intellisenseis 无法正常工作。
- SSDT 架构比较不会突出显示文件中的差异。
- 打开 Razor cshtml 文件时 Visual Studio 出现异常。
- 无法初始化扩展。
- Asp Core:创建新视图时显示错误。
- VS 2019 RC -- 无法创建 Winforms (.Net Core) -- 多个错误。
- 分支切换后不加载项目引用。
- 基架错误:此项不支持基架。
- 加载配置仅在首次安装完成之前起作用。
- 使用“放大文本”时,下拉项目类型 = 文本被部分隐藏。
- 错误的本地化内容。
- 在 Visual Studio 2019 RC 中,窗体设计器中的属性窗口显示不带拖动手柄的垂直滚动条,且在 4K 显示屏上自动缩放。
- Razor 自动完成在你按 Tab/Enter 之后才会工作并使用 html。
- 在 Visual Studio 2019 RC.1 中按顺序安装多个扩展时,VSIXInstaller.exe 随即崩溃。
- 移动 } 会导致 Visual Studio 崩溃。
- Visual Studio 2019 预览版 3 和预览版 4 中已禁用 WPF 控件的 Telerik UI。
- 未处理的 System.OperationCanceledException。
- 使用第三方 IME(QQ 输入法、Google IME)时,Visual Studio 2019 RC 在启动时出现故障。
- 如果关闭未取消停靠的窗口,Visual Studio 2019 预览版 4 将出现故障。
- Intellisense 错误:C++ 11 静态 constexpr 成员初始化导致“成员可能未初始化”。
- 主页“从列表中删除”停止工作。
- $(VCIDEInstallDir) 为无效路径。 Microsoft.Cpp.Common.props 中缺少反斜杠。
- 打开解决方案筛选器时,Visual Studio 2019 预览版 2.0+ 出现故障。
- 管理扩展工具栏则会引发异常。
- 针对 LLVM/clang-cl 的 CMake 配置编译器测试失败
- SSDT:为提高多个项目的加载解决方案的性能而进行的修复。
- SSDT:对以下情况的修复:在执行数据库和项目之间执行架构比较时并不总是能删除 SQL 文件,而是随后执行删除表的操作。
- SSDT:为改善旁白功能而进行的辅助功能修复。
- SSDT:用新的 Microsoft ODBC Driver for SQL Server 替换了旧的 sqlncli 驱动程序。
- 修复了多个 C# 和 Visual Basic 项目重载时速度缓慢的问题。
- 存在 IntelliSense 时,如果用户键入 Shift + Enter,则完成活动选择并插入一个新行。
- 修复了编辑器提示工具和灯泡不正确呈现的 PMA 问题。
- 现显示有关因扩展造成的崩溃的通知。
- 保护了有关 Visual Studio 性能的通知,使其免遭篡改。
- 修复了在跨显示项拖动时工具栏呈现方面的问题。
- 修复了在启用按监视器感知的情况下运行时工具选项呈现方面的问题。
- 已弃用所有 DpiHelper 类(扩展性)。
- 修复了初始屏幕缩放的问题,使其与主要显示屏缩放因子更好地匹配。
- 修复了设置导入中警告/错误有时报告不当的问题。
- 修复了工具选项报告的软件呈现方面的问题(无论呈现层如何)。
- 修复了标题栏区域中不显示打开的文件夹的名称这一问题。
- 修复了在启用了按监视器感知的情况下“在文件中查找”定位方面的问题。
- 修复了在启用了按监视器感知的情况下填充装饰器呈现方面的问题。
- 现可在 Azure VM 上运行的 ASP.NET 应用中通过快照调试器使用“按时间顺序查看调试”功能。 请注意,此功能发布时可能不适用于部分 Azure 版本。
- 我们已更新 Visual Studio Tools for Kubernetes 中的 Dockerfile 基架以使用 Microsoft 容器注册表,而不是使用 Docker 中心。
- 已修复 Visual Studio Tools for Kubernetes 中修改 Dockerfile.develop 不会使服务重新部署的问题。
- 已修复 Visual Studio Tools for Kubernetes 中的问题:Azure Dev Spaces 项目中的服务无法启动。
- 已修复 Visual Studio Tools for Kubernetes 中的问题:Azure Dev Spaces 项目中的服务在 Visual Studio 停止调试后停止运行。
- 已修复 Visual Studio Tools for Kubernetes 中的问题:在 Azure Dev Spaces 对话框中选择帐户时,有时会显示空引用错误对话框。
- 已修复 Visual Studio Tools for Kubernetes 中的问题:在添加 Kubernetes 业务流程支持时,显示群集选择对话框。
- 固定了运行按监视器感知时“导入和导出设置”向导的渲染
- 固定了运行按监视器感知时“新建项目”对话框的大小调整
- 对“启动”窗口进行了一组视觉对象优化
单击以下链接,查看 Visual Studio 2019 版本 16.0 中的所有现有已知问题和可用解决办法。
反馈和建议
我们期待你的宝贵意见和建议! 如有问题,请通过安装程序或 Visual Studio IDE 右上角的“报告问题”选项告知我们。 图标位于右上角。
可以在 Visual Studio 开发者社区中提出产品建议或跟踪问题,也可在其中提问、寻找答案和建议新功能。
此外,还可通过实时聊天支持获得免费安装帮助。
Blogs
通过参考开发人员工具博客网站中的见解和建议,随时掌握所有新版本的最新最全资讯,并发表有关大量功能的深入分析帖子。
Visual Studio 2019 发行说明历史记录
要详细了解 Visual Studio 2019 的历史版本,请查看 Visual Studio 2019 发行说明历史记录。