加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

如何在ASP.NET网站项目中使用最新的VB.NET语言级别?

发布时间:2020-12-16 09:29:02 所属栏目:asp.Net 来源:网络整理
导读:我的任务是使2009年开发的Web应用程序现代化.它是用VB.NET编写的,并使用ASP.NET WebForms.我想在VB.NET中使用最新的语言结构. 我得到了有用的指针说“Visual Basic 10.0不允许字符串插值”,这是我试图使用的,但我没有找到提高语言级别的方法. 我在这个相关问
我的任务是使2009年开发的Web应用程序现代化.它是用VB.NET编写的,并使用ASP.NET WebForms.我想在VB.NET中使用最新的语言结构.

我得到了有用的指针说“Visual Basic 10.0不允许字符串插值”,这是我试图使用的,但我没有找到提高语言级别的方法.

我在这个相关问题How to change the VB.NET language version in Visual Studio 2015中有提示,但在这种情况下它们没有帮助.

在ReSharper属性中,我可以将四个不同项目中的每个项目的“VB语言级别”设置为“Visual Basic .NET 15”.这改变了项目的.DotSetting文件中的一行XML,这个设置改变了ReSharper分析代码的方式,但是,这并没有消除编译错误.

如何在Visual Studio 2017中为ASP.NET网站或Web应用程序项目中的最新版本的VB.NET启用支持?

解决方法

要将最新的VB.NET或C#与ASP.NET Web应用程序和Web站点项目一起使用,您需要安装或更新两个Rosyln Nuget软件包.

微软:

When you have a solution open which has at least one web project which
is targetting .NET 4.5+ and does not have the DotNetCompilerPlatform
NuGet package in the Project menu you’ll see a new option,Enable C# 6
/ VB 14 appear.

以下屏幕截图来自VS2015,但选项为should be present in VS2017 too:

enter image description here

或者,绕过上面的GUI功能,直接进入Nuget包管理器并将以下包的最新版本安装到项目/站点中,以便与VB.NET语言一致,因为它可能是最新的:

> Microsoft.CodeDom.Providers.DotNetCompilerPlatform
> Microsoft.Net.Compilers

(NB最新版本是demanding .NET 4.6安装在系统上供编译器运行,但可以编译针对任何平台的代码).

这可能会让你按照C#6 / VB 14进行排序.最后一步是获取VB 15:在web.config文件中编辑langversion,使其读取15.0(如果你想要使用最新版本,则为最新版本 – 这在我的首选方案中).

<system.codedom>
  <compilers>
    <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider,Microsoft.CodeDom.Providers.DotNetCompilerPlatform,Version=1.0.8.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:15.0 /nowarn:41008 /define:_MYTYPE=&;quot;Web&;quot; /optionInfer+"/>
 </compilers>

不幸的是,我发现自己必须在将我的Roslyn升级到C#7.0然后再升级到7.1之后编辑langversion,所以它绝对值得注意.

顺便说一下,这个答案不仅适用于旧项目 – 如果使用的模板没有引用Nuget编译器软件包,即使在VS 2017中创建的新Web项目也需要此修复. Roslyn不是强制性的,例如模板.据报道,一个新网站尚未更新.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读