防止 Visual Studio 2015 删除 VB.NET 文件中的换行符 (_)
Posted
技术标签:
【中文标题】防止 Visual Studio 2015 删除 VB.NET 文件中的换行符 (_)【英文标题】:Prevent Visual Studio 2015 from removing line continuation characters (_) in VB.NET files 【发布时间】:2015-10-30 17:04:03 【问题描述】:我正在 Visual Studio 2015 中打开一些旧的 VB.NET 项目,当我编辑代码时,VS 会更改语法:
它会删除串联中的“_”:
'Before
myString = "ABC" & _
"DEF"
'After
myString = "ABC" &
"DEF"
或者在!前加一个空格:
'Before
myDatatable.Rows(0)!myColumn
'After
myDatatable.Rows(0) !myColumn
此语法与 Visual Studio 2010 或 2013 不兼容。
如何禁用此更改?
【问题讨论】:
Possibly related bug report 和 subsequent fix - 如果您专门针对旧版本,它会保留原始语法吗? 啊,修复标记为“已批准用于下一次预览” - 可能还没有。 快速浏览Roslyn's site 并不表示他们的发布时间表。任何人确定/知道该修复程序何时可供大众使用? 您找到解决方法了吗? 【参考方案1】:我遇到了同样的问题,我可以通过禁用编辑器中的“漂亮列表”选项来解决它。您可以在此处找到此选项:
Tools > Options > Text Editor > Basic > Advanced > Editor Help > Pretty listing (reformatting) of code
我不确定此选项会禁用哪些其他自动重新格式化,但至少编辑器停止删除旧代码/项目中的行继续符。
PS:虽然 Roslyn 团队表示他们已修复此问题(请参阅下面的链接),但此错误仍然存在于最新版本的 Visual Studio 2015 中。
编辑 Link to bug report - Link to merged fix(复制自原始问题的第一条评论)
【讨论】:
请添加引用以备份“Roslyn 团队说他们已修复此问题”的声明 编辑了我的答案以复制粘贴原始问题评论中提到的链接。另外,这真的是对可能的修复投反对票的好理由吗? 这对我来说默认是禁用的,但我仍然有同样的问题。还有其他想法吗? 奇怪,这应该可以工作(在我的系统上仍然有效)。这可能是一个漫长的过程,但您是否尝试过启用该选项、应用更改,然后再次禁用它? 我们使用的代码仍然部署在 VS2008 中,因此很遗憾仍然需要下划线。但是,如果您喜欢“漂亮列表”功能,您可以继续使用它,只需 CTRL-Z 即可在 VS2015+ 为您“修复”它之后立即撤消删除下划线。【参考方案2】:解决这个问题的官方方法是修改 .vbproj 文件以包含
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
10 用于 VS2010,如 https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/configure-language-version 所述
【讨论】:
【参考方案3】:在 Visual Studio (2015-19) 为您“修复”它之后,只需 CTRL-Z 即可撤消删除下划线。这会打开“漂亮列表”功能,但会恢复丢失的下划线。感谢 David Carta 作为评论留下的答案。
【讨论】:
我来自here 的评论:我不知道以前的版本可能有何不同,但只要代码编辑器窗格失去焦点(例如打开菜单或项目/类型/成员导航栏),甚至只是在使用下划线将光标移到代码之外或在任意位置单击鼠标右键。在编辑器中做了很多任何事情之后必须执行撤消似乎真的可行吗?以上是关于防止 Visual Studio 2015 删除 VB.NET 文件中的换行符 (_)的主要内容,如果未能解决你的问题,请参考以下文章
visual studio 2015 删除空行 ,缩进css
防止 Visual Studio 将 setter 方法限制为内部
如何防止 Visual Studio 将 SAK 添加到 prj 文件