Visual Studio 17.8现已推出!

阿德里安·墨菲

解锁开发人员生产力的新高度:优化的C++支持、增强的企业功能和完整功能。NET 8集成

Visual Studio 2022的最新更新(17.8)现已正式提供!这个通用版本提供了一套涵盖生产力、编程语言和企业管理的全面增强功能,是向前迈出的一大步。根据广泛的用户反馈开发,此版本与完全兼容。NET 8,目前也普遍可用。

让我们知道您的最喜爱的功能!

面积 增强功能
生产力Ş GitHub复制

创建拉取请求 (🙏社区建议293票)

保留大小写查找和替换(🙏社区建议–76票)

多报告限额增加(🙏社区建议–8票)

总结差异和改进(🙏社区建议–7票)

远程Linux单元测试支持

使全局函数静态

排序#include指令

Visual Studio更新通知

GitHub虚拟形象添加到Git存储库窗口

团队工具包

性能优化

提高剃须刀/剃须刀的响应能力

增强的F5速度

针对C++虚拟引擎的优化智能感知 

为非SDK风格打造加速度。NET项目

C++游戏开发Ş C++结构诊断

CMake目标查看改进

C++类、结构和并集的大小和对齐方式

生成成员函数常量提示

C++标准库

虚拟发动机测试适配器

非真实引擎代码段

虚幻引擎宏说明符建议

Build Insights功能视图

结构化诊断

C11穿线支架

远程文件资源管理器改进

尺寸和对齐提示

F类# 新代码修复

改进的自动完成

降低了参数名称提示中的噪音

未打开文件的诊断

.NET/C语言#Ş 调试场景中的.NET计数器工具

如何在HTTP文件中安全使用机密

通过Meters API对新仪器的.NET计数器支持

基准DotNet IDiagnosers

JavaScript和TypeScript开发 launch.json对打开文件夹的支持
调试和诊断 跨平台Enc/Hot Reload调试支持(Docker、WSL)

通过附加到进程调试Linux应用程序服务

使用VS探查器进行测试分析

剃须刀工具  事件处理程序方法生成的代码操作

C#代码的背景色

测试 预览版中的新IntelliTest
SQL Server数据工具 升级了Microsoft。数据。SQLClient(MDS)3.0到MDS 5.0及更多!
企业管理 能够只安装安装程序

管理员可以提示用户关闭VS以阻止管理员更新

 

这个版本非常重要,不仅因为它有广泛的功能列表,还因为它强调社区驱动的增强功能。以上功能是由客户自己投票决定的顶级改进。对于企业来说,此版本简化了客户端初始化并添加了新的管理功能,确保开发团队能够高效运行。高级调试控件和扩展的测试评测选项是此版本的一部分,为应用程序性能优化提供了关键指标。

生产力

GitHub复制

在最新版本的Visual Studio中,使用Visual Studio提高工作效率变得更加容易。GitHub Copilot autocomplete现在作为可选组件提供,与新的VisualStudio一起安装更容易。激活功能需要GitHub Copilot订阅;可以免费试用.

此处显示组件详细信息:Visual Studio Enterprise工作负载和组件ID | Microsoft Learn。

创建拉取请求–在Visual Studio中添加审阅者并使用“全部标记”编辑描述 

我们在这方面看到了很多参与开发者社区门票.作为响应,您现在可以在Visual Studio中创建一个Pull Request,从而完成整个内部工作流。推送后,通过单击Git Changes中通知横幅中的链接,或通过Git>GitHub/Azure DevOps>New Pull Request从顶级菜单进入New Pull请求窗口。在Visual Studio的每个预览版本中自17.7起预览2,我们已经分享了关于这一体验的新更新,我们很高兴能将其作为一项功能提供给普通观众。

自动生成的计算机描述屏幕截图

采取本次调查让我们知道你的想法。 

保留大小写查找和替换

执行Replace时,现在可以保留代码中每个匹配项的原始大小写。请注意,要获得Pascal大小写和Camel大小写,Replace字符串也必须是Pascal或Camel大小写法。

自动生成的计算机描述屏幕截图

使用“Alt+V”或单击“保留大小写”选项在“替换”窗口中切换大小写保留。

快速替换(Ctrl+H):

自动生成的计算机描述屏幕截图

在文件中替换(Ctrl+Shift+H):

自动生成的计算机描述屏幕截图

分享您对案例保存替换经验的看法开发者社区门票.

多报告限额增加

随着越来越多的人使用我们的多基因功能,我们听说开发者社区建议票你们中的许多人需要活动存储库的数量超过10个。现在,您可以在解决方案中一次使用多达25个存储库。

总结差异(和改进!)

利用新的摘要差异视图来关注代码中的更改。

自动生成的计算机描述屏幕截图

在每个比较视图中启用,新的汇总差异视图允许您切换上下文行可以更快地进行文件比较。我们还实现了diff和compare视图中的Summary视图。这个新选项允许您仅查看文件中的更改以及几行上下文,从而使在提交中查看更改或比较两个文件更加高效。

自动生成的计算机程序Description的屏幕截图

通过分享您的反馈,让我们了解您对此功能的看法在这里并与我们就开发者社区的建议票.

远程Linux单元测试支持

我们添加了支持,以便您可以从VisualStudio的测试资源管理器在远程Linux机器上运行CTest和GTest测试,就像您执行任何本地测试一样。

使全局函数静态

Visual Studio现在提示您将全局函数标记为静态函数。当您遇到没有向前声明的全局函数时,VisualStudio将提供一个快速修复,用螺丝刀图标表示。

图像使全局函数静态

您可以在“工具”>“选项”>“文本编辑器”>“C/C++”>“智能感知”下自定义此功能的设置。要了解有关此功能和Make Member Function Const的更多信息,请访问我们的在Visual Studio博客中使成员函数常量和全局函数静态。

清理和分类#include指令

现在,您可以自动对#include指令进行排序和清理。

未使用的#include指令将在编辑器中变暗。您可以将鼠标悬停在暗显的包含上,然后使用灯泡菜单删除该包含或所有未使用的包含。

图像排序包括指令

现在还可以为当前通过其他标头间接包含的实体添加#include指令。例如,如果您在代码中使用std::string,但没有#include<string>,那么如果传递性包含的其他头包含正确的头,那么代码仍然有效。这使得代码对其他标头中的更改很脆弱。如果#include cleanup检测到间接标头,将显示一个快速操作(在默认视图中由三个点表示)。将鼠标悬停在它上面会通知您,正在使用该及物include中的内容。然后,您可以选择单独添加直接包含,或者添加所有可传递使用的包含。

图像排序包括指令2

有关此功能的更多信息,请访问清除Visual Studio中的C/C++#includes.

要自动对#include排序,请右键单击任意#incl包括语句。然后,将鼠标悬停在上下文菜单中的#include directives选项上,将显示“Sort#inclUDirectives”

自动生成的计算机描述屏幕截图

您还可以配置可传递的包含清理,并通过“代码清理”条目进行包含排序。首先,通过分析>代码清理>配置代码清理打开代码清理配置菜单,或者单击底部状态栏中扫帚图标旁边的箭头并选择配置代码清理。将所需的功能添加到Included fixers部分,然后单击扫帚图标运行它们。

图像排序包括指令

您可以在“工具”>“选项”>“文本编辑器”>“C/C++”>“代码清理”中配置包括清理和排序。

Visual Studio更新通知

注意到新的东西了吗?对于VisualStudio2022,我们在VS任务栏图标中添加了覆盖,以帮助您了解VS何时更新。当有可用的更新并且您启用了“关闭时更新”选项时,图标将出现。一旦关闭VS,更新将立即开始,因此图标也将消失。有关关闭时更新的更多信息,请访问关闭时VS更新.

自动生成的公司徽标描述

GitHub虚拟形象添加到Git存储库窗口

在Git Repository窗口的多分支图中查看您的GitHub化身。

自动生成的计算机描述屏幕截图

团队工具包

现在,您可以使用Microsoft团队应用程序项目模板中发布的新选项为Microsoft团队创建更多类型的应用程序。包含在团队工具包现在可以创建以下选项:

  • Echo Bot–一个简单的机器人项目,可以回声用户输入并进行自定义
  • 链接展开项目–将URL链接呈现为自适应卡的消息扩展
  • 自定义搜索结果–一个消息扩展,用于从聊天合成区域运行自定义搜索查询,并将结果显示为自适应卡
  • Collect Form Input and Process Data(收集表单输入和流程数据)–一个基于操作的消息扩展,显示如何获取用户输入、执行某些操作并将结果发送回用户。

在ASP中安装“Microsoft团队开发工具”组件。NET工作负载开始或访问文档了解更多信息.

性能优化

提高剃须刀/剃须刀的响应能力 

使用Razor和Blazor的解决方案将获得更好的响应能力。我们通过在VisualStudio和Roslyn之间的跨进程通信期间显著减少内存分配来实现这一点。我们测试了OrchardCore公司解决方案,结果令人印象深刻。为了打开解决方案并准备好Razor智能感知,我们分配了大约1.4GB的内存。更少的堆分配意味着垃圾收集器的工作量更少,从而提高了响应能力。  

增强的F5速度 

通过优化断点的设置方式,我们大大提高了本地项目的F5性能。任何给定项目所看到的改进都取决于带断点的文件数量、带符号的DLL数量等。此外,我们已经为Windows应用程序优化了PDB加载过程,减少了PDB定位后加载PDB所需的时间。在我们的测试中,这些优化为Unreal Editor项目带来了20%的速度显著提高。 

F5速度

针对C++虚拟引擎的优化智能感知 

我们已经改进了在打开以前打开的C++文件后,智能感知和着色变得可用的速度。我们始终为打开的文件缓存IntelliSense状态。在17.8中,我们重新构造了缓存中的读取,以便首先计算最关键的信息,包括所选引用的彩色化和高亮显示。这种优化有助于您更快地提高生产效率。 

智能化C++

为非SDK风格打造加速度。NET项目 

Visual Studio 17.8扩展构建加速目标为的托管应用程序非SDK样式项目(例如,针对.NETFramework4.8或更低版本的项目)对构建时间有很大影响。要启用,请按如下所示设置msbuild项目属性: 

 <项目>  

<属性组>  

<AccelerateBuildsInVisual Studio>真</AccelerateBuildsInVisual Studio> 

</PropertyGroup(属性组)>  

</项目>  

这基于17.5中介绍的成功SDK风格项目,显著减少增量构建时间。   

在内部解决方案的内部测试中,我们注意到在增量构建时间方面提高了50%。然而,实际的改进取决于构建开始时项目的状态。具体来说,与解决方案中的总项目相比,修改的项目越少,改进越大。您所经历的实际改进程度取决于项目的具体特征及其修改。 

C++游戏开发

C++结构化诊断

大量编译器错误似乎无法导航,这是许多C++开发人员生活中的祸根。这取决于提供更好体验的工具,以帮助您理解诊断并了解如何解决根本问题。

为了帮助实现这一点,您现在可以在“输出”窗口和新的“问题详细信息”窗口中查看结构化诊断。具有可用附加信息的错误列表条目将在新的“详细信息”列中显示一个图标。

自动生成的计算机屏幕的屏幕截图描述

单击此项将在“问题详细信息”窗口中打开这些详细信息,允许您浏览错误的相关信息:

自动生成的计算机描述屏幕截图

此嵌套结构也反映在“输出”窗口中:

1> 来源:cpp(18.6):

1> 或“无效宠物(_T0)”

1> 来源:cpp(23.5):

1> 未满足相关约束

1> 来源.cpp(18,10):

1> “宠物<蜥蜴>”的概念被评估为错误

1> 来源.cpp(16,20):

1> “has-memberpet<蜥蜴>”这个概念被评估为false

1> 来源.cpp(10,44):

1> “宠物”:不是“蜥蜴”的成员

1> 来源.cpp(20,8):ra

1> 参见“蜥蜴”的声明

1> 来源.cpp(16,41):

1> “hasdefaultpet<蜥蜴>”这一概念被评估为false

1> 来源.cpp(13,30):

1> “is_pettable”:不是“蜥蜴”的成员

1> 来源.cpp(20,8):

1> 参见“蜥蜴”的声明

有关此功能的详细信息,请访问“新问题详细信息”窗口中的结构化诊断。

CMake目标查看改进

为了使CMake Targets视图更可用,我们实施了一些新的改进,使您比以往更容易导航CMake目标。这包括改进了对CMake Targets视图的导航,一个新的、更简化的CMake Targets视图,以及从Targets视图中排除指定CMake项的功能。

现在,您可以右键单击解决方案资源管理器中的任意位置,然后从上下文菜单导航到CMake Targets视图。

自动生成的计算机描述屏幕截图

CMake Targets视图得到了进一步简化,这样用户就不必在没有可构建的可执行文件的情况下单击文件夹就可以到达他们想要的目标。

自动生成的计算机程序Description的屏幕截图

现在,您还可以使用新的CMakeTargetsViewExcludedItems字段(一个字符串数组)在VSWorkspaceSettings.json中定义要从CMake Targets视图中排除的项。

要查看更多详细信息,请参阅此博客帖子增强Visual Studio中的CMake Targets视图–C++团队博客

您还可以通过右键单击解决方案资源管理器中的任意位置并选择切换到CMake Targets View,轻松导航到CMakeTargets视图

自动生成的计算机屏幕截图描述

现在,您还可以通过从View下拉列表中选择CMake Targets View来访问它。

自动生成的计算机描述屏幕截图

此外,CMake Targets视图已经过简化,因此用户无需在没有可构建的可执行文件的情况下单击文件夹即可到达所需的目标。

C++类、结构和联合的大小和对齐

根据您的反馈,我们引入了“大小和对齐”功能。此功能使您能够可视化数据类型(例如类、结构、联合、基类型或枚举)的大小和对齐方式,而无需编译代码。要检查大小和对齐方式,请将鼠标悬停在标识符上,“快速信息”工具提示将显示信息。要使用此功能,请将鼠标悬停在标识符上,“快速信息”工具提示将显示详细信息。

自动生成的计算机描述屏幕截图

生成成员函数常量提示

现在,您可以使用此新功能,该功能建议在逻辑上不应修改对象状态的情况下使成员函数成为常量。常量成员函数的使用对于在C++代码中实现常量正确性至关重要。当成员函数声明为const时,可以在const对象上安全地调用它,使您能够创建const-correct代码,并避免在处理不可变对象时出现意外的副作用。

使用常量成员函数的优点之一是它们为代码库带来了增强的安全性和可预测性。通过清楚地区分修改对象状态的函数和不修改对象的函数,可以更容易地推断不同成员函数的行为。

通过将鼠标悬停在成员函数上并单击灯泡图标,可以快速访问建议,将该函数标记为常量。

自动生成的计算机描述屏幕截图

默认情况下,此功能设置为建议,由功能下方的三个点表示。要配置设置,请导航到“工具”>“选项”>“文本编辑器”>“C/C++”>“代码样式”>“Linter”。

自动生成的计算机描述屏幕截图

C++标准库

在C++23中标准化的标准库模块现在可以在C++20模式下使用。这是一个跨供应商扩展,也由libstdc公司++利比亚银行++.

我们还实现了几个新的C++23和C++26特性,包括对独立实现的增强支持和对std::格式中的std::stacktrace的支持。阅读中的所有详细信息STL变更日志.

虚拟发动机测试适配器

特别感谢为这一功能做出巨大贡献的Rare的工作人员。

简化您的测试过程,而不使用Unreal Engine Test Adapter离开IDE。现在,您可以发现、运行、管理和调试虚幻引擎测试。在Visual Studio 2022版本17.8中,打开Visual Studio时,将自动显示Unreal Engine Tests。要查看测试,可以使用视图>测试浏览器打开测试浏览器。

自动生成的计算机描述屏幕截图

我们免费的最新版本用于虚拟引擎的Visual Studio工具需要使用Unreal Engine Test Adapter。此外,确保在Visual Studio安装程序中启用“用C++开发游戏”工作负载中的“虚拟引擎测试适配器”组件。

非真实引擎代码段

使用更高效地编写代码非真实引擎代码段。在Visual Studio 2022版本17.8中,可以在成员列表中找到作为代码段的常见Unreal Engine构造。首先,键入任何Unreal Engine构造名称,例如uclass。按Tab键或Enter键展开代码段。

自动生成的程序代码Description的计算机屏幕截图

我们还为使用导出API和插件的用户提供了导出版本的UCLASS(UCLASS,uclassexported)、UINTERFACE(UINTERFACE,uinterffaceexported)和USTRUCT(USTRUCT,ustrutexport)。此外,根据您的反馈,我们还包括了诸如SWidget(SWidget)、TActorRange(TActorRange)、TObjectRange(TObjectRange)和WITH_EDITOR(witheditor)等宏。

支持的代码段列表

  • uclass类
  • uclass导出
  • u函数
  • 界面
  • uinterface导出
  • 喧闹
  • ustruct公司
  • 出口的ustruct
  • uelog公司
  • 斯威吉特
  • 塔克托朗日
  • 射程
  • 带编辑器

虚幻引擎宏说明符建议

这是目前的一个实验特性,将在未来几周内逐步提供给Unreal Engine开发人员。

我们通常收到的最重要的反馈之一是建议使用虚幻引擎宏说明符。我们很高兴与大家分享,宏说明符将开始出现在Visual Studio 2022版本17.8中反射宏的成员列表建议中。此功能将帮助您快速访问各个宏的所有可能的说明符,而无需依赖内存或在VisualStudio和文档之间来回切换。

自动生成的计算机程序Description的屏幕截图

构建洞察功能视图

Build Insights现在与Visual Studio 2022集成,并使用MSVC与MSBuild和CMake项目一起工作。在Visual Studio 2022版本17.8中,您现在可以看到与函数生成相关的其他信息。新的功能视图将提供编译过程中函数所需的时间以及关联的ForceInline数。

自动生成的程序Description的屏幕截图

转到Build菜单,开始Build Insights.etl跟踪捕获。

自动生成的计算机描述屏幕截图

编译后,Build Insights将创建一个诊断报告,显示函数生成时间以及ForceOnline。

结构化诊断

C++编译器错误可能很长而且很难处理。为了解决这个问题,我们创建了一个新的“问题详细信息”窗口,它允许您以结构化的方式导航编译器错误。单击错误列表中某个条目的详细信息图标,可以打开“问题详细信息”窗口。

自动生成的计算机描述屏幕截图

可以展开“问题详细信息”窗口中的条目,以查看编译器中有关错误的嵌套信息。

C11螺纹支架

我们现在已经实现了对可选C11线程库的支持。

与C11原子不同,C11线程和C++线程之间不兼容,但C++程序可以像任何C程序一样包含C11线程头并调用函数。实现是不同的。

C11包含对线程和各种支持并发原语的支持,包括互斥锁、条件变量和线程静态存储。(所有这些都已实施)

远程文件资源管理器更新

现在,在远程文件资源管理器中,您可以通过双击远程文件来查看和编辑这些文件,并像通常通过解决方案资源管理器一样进行编辑和保存。

自动生成的计算机描述屏幕截图

尺寸和对齐提示

使用此功能,您可以轻松地在代码编辑器中检查类、结构、联合、基类型和枚举的大小和对齐方式,而无需编译代码。当您将鼠标悬停在这些图元上时,“快速信息”将显示其大小和对齐信息。您可以灵活地将类、结构或联合的名称悬停在代码中出现的任何位置,而不仅仅是在其声明中。这样就不需要滚动和搜索它们的声明,允许您轻松地从代码库的任何部分访问它们的大小和对齐信息。

自动生成的计算机代码Description的屏幕截图

F类#

新代码修复

我们引入了一个代码fix,它将equals(`=`)更改为acolon(`:`。这种错误在F#新手中尤其常见。

自动生成的计算机屏幕截图描述

改进的自动完成

F#自动完成现在在各种场景中都得到了增强。这包括:

  • 匿名记录字段

自动生成的计算机屏幕截图描述

  • 联合用例字段

自动生成的计算机描述屏幕截图

  • 区分的联合用例字段

自动生成的计算机描述屏幕截图

  • 枚举事例值表达式

指向绿线的绿色箭头自动生成描述

减少了参数名提示中的噪音

现在,与区分联合字段匹配的参数名称的提示被隐藏。这有助于提示的目标是只显示在其他情况下不明显的信息。

以中等可信度自动生成的带有文本Description的计算机代码

未打开文件的诊断

我们实现了一个选项来激活对未打开文件的诊断。出于性能考虑,默认情况下此选项处于禁用状态(阅读详细信息在这里). 您可以在中启用此功能工具>选项>文本编辑器>F类#>高级>背景分析:

自动生成的计算机描述屏幕截图

.NET/C语言#

调试场景中的.NET计数器工具

这个。NET计数器工具现在在诊断窗口中可用。

这意味着即使在调试会话期间;你仍然可以利用的力量。NET计数器,用于监视和分析关键性能指标。只需选择“选择工具”下拉菜单下的“.NET计数器”选项即可启用它。

该工具在性能分析和调试环境中的无缝集成提供了全面的见解,并增强了它们有效优化应用程序性能的能力。

自动生成的计算机描述屏幕截图

在HTTP请求中安全使用机密

在许多情况下,当开发Web API时,您可能需要使用一个秘密值。我们增加了对安全使用机密的支持HTTP文件在Visual Studio中。该支持包括在三个不同的秘密提供者中存储秘密。有关更多信息,请参阅在Visual Studio 2022–Visual Studio博客中的HTTP请求中安全使用机密。

通过Meters API为新仪器提供.Net计数器支持

的最新版本。NET计数器工具引入了集成的扩展功能。NET Meters API,包括新的仪器选项,包括“计数器”和“ObservableCounter”

“计数器”跟踪值随时间的变化,调用方使用“Counter<T>.Add”报告更新。相反,“ObservableCounter”类似于计数器,但调用方负责跟踪总值。目前。NET计数器工具报告总计的更改率。

您可以在的列表中找到这些指标。NET计数器指标名册,提供了对系统性能和资源利用率的增强可见性。此外,我们正积极计划在未来引入其他仪器选项,以进一步增强此功能。

自动生成的计算机描述的屏幕截图

基准DotNet IDiagnosers

Visual Studio Profiler最近进行了增强,以提供对Benchmark DotNet IDiagnosers的支持。这些IDiagnoser在汇集Benchmark DotNet场景中产生的诊断会话中发挥着关键作用。

“基准测试”选项卡提供了已执行基准测试的可视化。它还提供了通过双击特定行从泳道中精确选择基准的功能。

自动生成的计算机描述屏幕截图

或者,您可以选择通过右键单击上下文菜单导航到源文件。统计数据直接来自Benchmark DotNet,并以结构化网格格式呈现。

自动生成的视频编辑程序Description的屏幕截图

JavaScript和TypeScript开发

launch.json对打开文件夹的支持

当您选择使用.vscode目录中的launch.json打开工作区中的文件夹以存储启动和调试设置时,Visual Studio将识别该文件夹,并将其包含在绿色按钮旁边的调试目标下拉菜单中。

自动生成的计算机描述屏幕截图

调试和诊断

跨平台Enc/Hot Reload调试支持(Docker、WSL)

在诊断和调试Linux容器或Windows Subsystem for Linux(WSL)中托管的应用程序时,添加了对F5(带调试器)和Ctrl-F5(无调试器的)场景的“编辑并继续”支持。请注意F5调试场景依赖于。NET 8 RC1及以上。

通过附加到进程调试Linux应用程序服务

我们很高兴推出一个强大的新功能,可以对进行调试。Linux应用程序服务中的NET进程–通过“附加到进程”。

此功能使开发人员能够轻松调试和诊断正在运行的Linux Azure App Services实例中的问题。

要附加到进程,请执行以下操作:

1.选择调试>附加到进程(或按Ctrl+Alt+P)以打开附加到进程对话框。

2.检查连接类型。应该是“Microsoft Azure应用程序服务”

3.将Connection目标设置为Linux机器名。

4.选择正确的可用流程并单击“附加”

自动生成的计算机描述屏幕截图

使用VS Profiler进行测试评测

我们很高兴能够推出更新的测试分析功能。当您在测试资源管理器中右键单击测试并选择“配置文件”时,您现在可以在一组可用工具之间进行选择,包括:

  • CPU使用率
  • GPU使用
  • 文件IO
  • .NET异步
  • 事件查看器
  • .NET对象分配跟踪
  • 仪表

选择要使用的工具,然后单击“开始”,将提供报告。

自动生成的计算机描述屏幕截图

剃须刀工具

事件处理程序方法生成的代码操作

如果您使用像@onclick或@onactivate这样的事件来引用尚未定义的C#方法,则可以使用新的Razor代码操作来自动生成该事件处理程序方法。此代码操作还支持自定义事件参数。

自动生成的程序说明的计算机屏幕截图

C#代码的背景色

对于那些喜欢它的人,现在可以选择为Razor文件中的C#代码添加背景色。默认情况下已关闭,请转到工具>选项>文本编辑器>剃刀>高级和设置C#代码的背景真的.

自动生成的计算机程序Description的屏幕截图

测试

预览版中的新IntelliTest

IntelliTest探索您的。NET代码生成具有高代码覆盖率的测试套件。它由最新版本的Z3问题解决程序提供支持,生成一组不同的输入(作用域为那些提高代码覆盖率的输入),然后插入我们所称的每个方法的参数化单元测试。当您生成测试时,您可以选择要保留到测试项目中的测试,该项目可以作为您的回归套件。更新代码时,可以重新运行IntelliTest以使生成的测试与代码同步。

此企业版功能以前的实现仅支持代码定位。NET Framework,不支持x64配置。此更新版本包括以下内容:

通过“工具”>“管理预览功能”启用该功能,并选择IntelliTest支持使用Z3 v4的NetFx和Net6(需要重新启动),立即在您的项目上进行尝试。

自动生成的标志描述的特写

然后在代码中,右键单击方法并选择IntelliTest(Preview),然后选择Create Project以创建可以保存测试的项目,或Generate tests以生成一组测试以进行检查并决定保留哪些测试。

SQL Server数据工具

SQL Server Data Tools中的MDS 3.0到MDS 5.0升级

SQL Server数据工具(SSDT)已从(Microsoft.Data.SQLClient)MDS 3.0升级到MDS 5.0。MDS 5.0比MDS 3.0有一些显著的优点。它增加了对TDS 8.0的支持,支持在连接上指定服务器SPN和故障转移服务器SPN等。请参阅博客有关升级好处的更多信息。

对于SSDT用户,可以注意到的主要变化是连接到数据库时。两个新字段,即:加密信任服务器证书已添加到连接页面。这指定了加密类型和信任服务器证书的要求。默认情况下,Encrypt设置为true或Mandatory。您可以在我们的Microsoft学习文档.

企业管理

我们在此版本中引入了两个新功能,可以帮助IT管理员在其企业中部署VisualStudio。

仅安装安装程序

去年8月17.7日,我们推出了一项功能允许管理员将更新Visual Studio的控制权委托给标准用户没有管理员权限的用户。要启用此功能,管理员必须通过启用全局策略并执行安装程序的初始安装来预配置客户端计算机。我们使用以下新的––installeronly参数使后一步非常容易通过编程实现:

vs_enterprise.exe安装––installeronly[--passive][--quiet]

管理员可以提示用户关闭以取消阻止更新

许多企业利用我们的管理员更新解决方案在整个组织内提供每月安全更新。这是我们建议的保持安全的最佳做法。然而,正如你们中的一些人已经意识到和向我们建议,如果Visual Studio处于打开状态且正在使用中,则阻止应用管理员更新。我们创建了一个新的管理员设置的名为“AdministratorUpdatesNotifications”的策略这将在必要时向用户显示windows toast通知,并通知他们需要关闭Visual Studio。一旦用户自愿保存其工作并关闭Visual Studio,管理员更新将立即应用。

“请关闭VS”管理员更新通知

设置新的“AdministratorUpdatesNotification”策略时的通知

此策略将在Intune设置目录中提供,也可以在我们的ADMX模板.

分享您的反馈并与Visual Studio保持联系!

我们感谢您花时间报告问题/建议,并希望您在使用Visual Studio时继续向我们提供反馈,说明您喜欢什么以及我们可以改进什么。您的反馈对于帮助我们使Visual Studio成为最佳工具至关重要!您可以通过与我们分享反馈开发者社区:通过报告任何错误或问题报告问题Ş和分享您的建议Ş以获得新功能或对现有功能的改进。

通过关注我们,与Visual Studio团队保持联系YouTube网站,推特,LinkedIn链接,抽搐和上的Microsoft学习.

代表整个Visual Studio团队,感谢您的阅读和快乐编码!!

35条评论

讨论结束。登录以编辑/删除现有评论。

  • 斯特凡·尼尔森 0

    此版本是LTSC吗?
    我没有找到这方面的信息

    • 罗布·扬森 1

      不确定您指的是VS2022 17.8还是。净8?偶数的版本。网络(6,8,…)是LSTC。对于VS2022:这个页面说17.8是LSTC。

      • 斯特凡·尼尔森 0

        我指的是VS 2022 17.8,谢谢你提供的信息

      • ToreØstergaard Jensen(托雷) 2

        你好,罗布

        还无法在安装程序中选择17.8作为更新频道-这是因为它当前为“当前”吗?我希望在不久的将来从17.6升到17.8,但不会链接到切换回Current,因为这需要在17.9到达该频道时再进行一次更改。

        • 埃伦德·格拉夫 1

          您似乎可以从以下位置下载最新的VS安装程序,使17.8 LTSC频道选项出现在下拉列表中:https://aka.ms/vs/17/release.ltsc.17.8/vs_professional.exe

          或者,将响应文件与

          “channelUri”:“https://aka.ms/vs/17/release.ltsc.17.8/频道",“channelId”:“VisualStudio.17.版本.LTSC.17.8”,
        • 尼古拉斯·科兹温斯基 0

          对我来说,我必须进行两步更新:
          17.6.x>17.7.7
          17.7.7 > 17.8.2

          或者在prosa中:到17.6.x,宣布17.8号;在更新到17.7.x并手动调用更新检查后,它就发布了,我可以安装它了。

        • ToreØstergaard Jensen(托雷) 0

          我等着看它是否最终会出现。当它没有(上周失去耐心)时,我换到了Current频道,并升级到了最新的频道(当时是17.8.2)。仍然只有“当前”、“预览”和“LTSC版本17.6”作为选项。

          今天我更新到了17.8.3,删除了“LTSC版本17.6”选项,所以现在我有(不容易)返回LTSC的方法。

          为什么17.8没有在更新设置中显示为值。我们真的需要找到新LTSC的特定安装程序才能切换到新的LTSC吗?

          • 克里斯汀·鲁纳Microsoft员工 1

            大家好!我们有一个小错误,17.8 LTSC频道无法用作更新频道。感谢您通过博客帖子上的评论提高我们对它的认识。我打开了一个开发人员社区票据来跟踪此问题,您可以按照它获取更新在这里。我们很快就会解决这个问题。

  • Hoang Do Van公司 5

    Visual Studio更新服务器现在有问题吗?我检查可更新的最新版本是17.7.7,但看不到17.8版?

    • 乔·泰勒 2

      请尝试从“开始”菜单运行“Visual Studio安装程序”。17.8为我显示在那里,但当我在Visual Studio中使用“检查更新”按钮时没有显示。

    • 埃里克·林奇 1

      FWIW,17.8在我查看VS IDE中的更新时最初没有显示,只有17.7.7。在升级到17.7.7并再次在VS IDE中检查后,17.8确实出现了。我不得不升级两次,这很烦人,但这些VS小故障现在似乎已经成为了常态。

  • 保罗·福纳里

    没有关于Windows窗体OOP设计器支持和性能的消息?
    我们想从.net fx 4.8升级到.net 8,但我们正在等待相同的windows窗体设计器功能和性能。
    谢谢

    • CY H公司 0

      +1

  • 杰夫琼斯 4

    MAUI(XAML)或Blazor(HTML/CSS)仍然没有可视化设计器。只有WinForms具有可靠、成熟、省时的GUI设计器(自20世纪90年代中期开始使用VB1)。

    令我惊讶的是,微软失去了所有曾经了解拖放式GUI设计师所提供的生产力提升和开发人员保留能力的人。

    如果没有MAUI和Blazor的视觉设计师,MS如何销售(直面)“Visual”Studio?不,“热装”一点也不像设计师。甚至都不接近。

    • 安德烈亚斯·索尔韦恩 0

      我想他们并没有真正“卖出”大部分。

  • 卡尔·扎克利 0

    在Azure DevOps构建管道上,我似乎无法获得Visual Studio版本17.8。它只加载17.7。而且我只能使用.0(16.0、17.0等)指定版本(在自定义版本中),所以我似乎无法运行构建?

    • 蒂姆·豪尔Microsoft员工 0

      您好,卡尔,我们正在推出windows托管跑步者图像的更新,最新版本包括VS 17.8。

      • 卡尔·扎克利 0

        我昨天也提交了一份支持案例。因为我现在只是在测试,所以我只是在我的机器上发布,作为一种解决方法。

  • 莫汉·普拉萨特 0

    安装visual studio 2022 17.8似乎无法安装.net 8 SDK,而安装2022预览版则可以正常工作。是否存在任何缺陷来修复上述问题?

    • 蒂姆·豪尔Microsoft员工 0

      嗨@Mohan!谢谢你在这里发表评论,我想知道你是不是特别提到了。NET Aspire或。NET 8一起使用。安装Visual Studio 2022 17.8的发行版后,能否从命令行确认“dotnet–info”的输出?如果你真的没有。NET8SDK安装后,我们需要记录一个错误,但如果您可以先确认此输出,这将很有帮助。

  • 安德烈亚斯·索尔韦恩 1

    只有我或其他人在预览选项中没有新的测试设置。再次检查是否已安装所有组件,但仍没有任何预览选项可用于启用新的IntelliTest功能。

    • 安德烈亚斯·索尔韦恩 0

      重新安装了所有组件,甚至那些我不需要或从未使用过的组件,工具>选项>管理预览功能>使用Z3 v4对NetFx和Net6的IntelliTest支持不存在。
      更新至17.8.1仍没有此功能/选项的迹象

  • 道格拉斯·克拉特 2

    不确定17.8对其他人是如何起作用的,但这对我们来说是一个棘手的问题。
    我们的esproj项目停止了工作,我们的Blazor WASM项目也停止了工作。
    我们如何提交正确的错误报告?

  • 蒂特·拉朱尔 0

    安装17.8后,是否有人遇到ClickOnce问题?

    我刚刚重建并出版了我的。基于NET 7的WinForms应用程序使用17.8,由于系统原因,用户计算机中的软件安装失败。系统配置。清单中包含两次ConfigurationManger.dll.deploy文件。然后,我从另一台带有以前VS版本的电脑上发布了完全相同的解决方案和代码,一切都很好。

    17.8版本在其他3台PC中创建了这样的无效清单,这似乎表明这是最新VS版本的系统性问题,而不是一些孤立的单台PC相关问题。我需要申请一些解决方案才能使用17.8进行ClickOnce发布,或者我可以希望下一个版本更新来解决这个问题吗?

  • Gauthier M。 1

    你能删除“Visual Studio 2022”命名法而改用“Visual Studio 17.8”吗?这样可以更清楚地了解我们在谈论什么?

    我们是开发人员,我们不需要在产品上虚假营销版本号。

  • 普拉文·波图鲁 1

    有关于Visual Studio在arm上缺少的工作负载的更新吗?大约一年来我没有听到太多消息。我计划在snapdragon精英x发布时使用它,这是目前唯一的拦截器。

  • 杰里米·圣阿曼德 0

    C11线程仍然不可用,因为17.8中没有添加头文件(threads.h)。我在9月底发布的预览版中提到了这一点,但我想它可能被忽略了。

    MSVC开发人员可能正在使用包含threads.h的预览版WindowsSDK,这就是为什么消费者无法使用它的原因。

  • 亚历克斯·惠特尔 1

    17.8是一年左右以来最差的版本,对我们来说完全没有任何作用。断点不起作用,剃须刀页面的样式被破坏,不断锁定,当没有代码更改时,会收到热重新加载消息,这是完全不可用的。

  • 杰拉尔多·布恩罗斯托 1

    在新的VS 2022 17.8中,如果我安装了Angular 17,Angular模板将无法工作。由于Angular 17+独立组件是默认组件,并且模板无法创建项目,因为没有更多app.module.ts。

    • 简·莫滕森 0

      我认为这个特定的问题已经用17.8.1解决了

      • 杰拉尔多·布恩罗斯托 0

        我刚刚下载了17.8.1,是的,它是固定的!谢谢你的提醒!

反馈usabilla图标