【问题标题】:How to change the VB.NET language version in Visual Studio 2015如何在 Visual Studio 2015 中更改 VB.NET 语言版本
【发布时间】:2015-11-14 08:32:54
【问题描述】:

在 Visual Studio 2015 中,可以选择使用哪个版本的 C# 语言进行编码,如 here 所示。

我正在为 VB.NET 寻找相同的选项 - 如何将语法等限制为旧 VB.NET 版本?

我想这样做,以免在我与使用 Visual Studio 2012 的人共享的项目中意外使用 VB 14 功能。我宁愿不要在我的机器上安装 Visual Studio 2012 或创建一个新的虚拟机来满足偶尔的需求。

注意:我不想更改目标 .NET Framework 版本。

【问题讨论】:

    标签: vb.net visual-studio visual-studio-2015


    【解决方案1】:

    VB.NET 编译器为此提供了/langversion 选项。 MSBuild 也支持。但不是通过 IDE,这使得更改它很尴尬。

    仍有可能,您必须编辑 .vbproj 文件。使用文本编辑器,记事本就可以了。并复制/粘贴此 sn-p,将其插入第 4 行,使其对所有配置和平台都有效:

      <PropertyGroup>
         <LangVersion>12</LangVersion>
      </PropertyGroup>
    

    并仔细检查它是否有效:

    Module Module1
        Sub Main()
            Dim test As String
            Console.WriteLine(NameOf(test))
        End Sub
    End Module
    

    输出:

    error BC36716: Visual Basic 12.0 does not support 'nameof' expressions.
    

    嗯,这行得通,IntelliSense 也用红色曲线标记。您可能想要创建自己的项目模板,这样您就不必一遍又一遍地这样做。使用文件 > 导出模板。

    【讨论】:

    • 我会对此进行测试。它似乎仍然允许 Readonly Auto 属性。你也看到了吗?
    • 我可以重现。请注意,这不会经常进行测试,connect.microsoft.com 是报告此类错误的好地方。
    • 我将对所有新的 VB14 功能进行测试并报告连接情况。
    • 如果您不想给它投票,请提出here。这些天不确定是否应该在 Connect 或开源项目区域中记录内容。
    • 我投票了。现在在此 Roslyn bug 中进行跟踪,已于 1 月 21 日解决。
    【解决方案2】:

    如果您使用的是ReSharper,事实证明这是一个选项:

    • 在解决方案资源管理器中左键单击项目
    • 选择属性窗口(不是项目属性 - 您希望属性卡在其中)
    • 在 ReSharper 选项下有一个“VB 语言级别”选项,它提供的选项一直回到 VB.NET 8。

    我还没有测试过它的效果如何。

    【讨论】:

      【解决方案3】:

      我认为在使用 VB 时这是不可能的。

      查看这个相关的连接错误:Connect: VB 14 compiler removes line continuations even when web.config specifies VB 8 as compiler

      【讨论】:

      • 你认为可以通过 VS 的扩展来重现 C# 功能吗?
      • 刚刚注意到 ReSharper 可以做到 - 请参阅我的回答。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-25
      • 1970-01-01
      • 2014-12-27
      相关资源
      最近更新 更多