阻止Visual Studio 2015删除VB.NET文件中的行连续字符(389;)

阻止Visual Studio 2015删除VB.NET文件中的行连续字符(389;),vb.net,visual-studio-2015,code-formatting,pretty-print,line-continuation,Vb.net,Visual Studio 2015,Code Formatting,Pretty Print,Line Continuation,我正在Visual Studio 2015中打开一些旧的VB.NET项目,当我编辑代码时,VS更改了语法: 它将删除串联中的“u3;”: 'Before myString = "ABC" & _ "DEF" 'After myString = "ABC" & "DEF" 或在之前添加空格!: 'Before myDatatable.Rows(0)!myColumn 'After myDatatable.Rows(0) !myCo

我正在Visual Studio 2015中打开一些旧的VB.NET项目,当我编辑代码时,VS更改了语法:

它将删除串联中的“u3;”:

'Before
myString = "ABC" & _
           "DEF"

'After
myString = "ABC" & 
           "DEF"
或在之前添加空格!:

'Before
myDatatable.Rows(0)!myColumn

'After
myDatatable.Rows(0) !myColumn
此语法与Visual Studio 2010或2013不兼容


如何禁用这些更改?

我也遇到了同样的问题,我可以通过禁用编辑器中的“漂亮列表”选项来修复它。您可以在此处找到此选项:

Tools > Options > Text Editor > Basic > Advanced > Editor Help > Pretty listing (reformatting) of code
我不确定这个选项还禁用了什么自动重新格式化,但至少编辑器停止删除旧代码/项目中的行继续字符

PS:虽然Roslyn团队表示他们已经解决了这个问题(请参见下面的链接),但这个错误仍然存在于最新版本的Visual Studio 2015中


编辑-(复制自原始问题的第一条注释)

在Visual Studio(2015-19)为您“修复”下划线后,只需按住CTRL-Z键即可撤消删除下划线。这会使“Pretty Listing”功能保持打开状态,但会恢复丢失的下划线。感谢David Carta留下的答案作为评论。

解决这一问题的官方方法是修改.vbproj文件以包括

<PropertyGroup>
   <LangVersion>latest</LangVersion>
</PropertyGroup>

最新的

10是针对VS2010的,如

所述,并且-如果您专门针对旧版本,它是否保留了原始语法?啊,修复标记为“已批准用于下一次预览”-可能它仍然不在。快速查看并不能表明它们的发布计划。是否有人确定/知道该修复程序何时可供大量使用?您是否找到了该修复程序?请添加一个参考,以备份“Roslyn团队说他们已修复了此问题”编辑了我的答案以复制粘贴原始问题评论中提到的链接的声明。此外,这真的是一个很好的理由否决一个可能的解决方案吗?这是默认为我禁用,但我仍然有同样的问题。还有其他想法吗?奇怪,这应该行得通(在我的系统上仍然行)。这可能需要很长时间,但是您是否尝试过启用该选项、应用更改,然后再次禁用它?我们在VS2008中仍然部署了使用的代码,因此很遗憾,下划线仍然是必需的。但是,如果您喜欢“漂亮列表”功能,可以将其保持启用,只需在VS2015+为您“修复”后按住CTRL-Z键即可撤消删除下划线。我的评论来自:我不知道以前的版本可能有什么不同,但Visual Studio 2019会在每次保存时删除下划线,只要代码编辑器窗格失去焦点(例如,打开菜单或项目/类型/成员导航栏),甚至只是在代码外用下划线移动光标或右键单击任意位置时。在编辑器中执行几乎所有操作后,是否确实需要执行撤消操作?