Nil*_*eas 4 vb.net asp.net aspnet-compiler visual-studio visual-studio-2017
我的任务是现代化2009年开发的Web应用程序。它是用VB.NET编写并使用ASP.NET WebForms编写的。我想在VB.NET中使用最新的语言构造。
我得到了有用的提示,说“ Visual Basic 10.0不允许字符串插值”,这是我试图使用的方法,但是我没有找到提高语言水平的方法。
我在此相关问题中有技巧,如何在Visual Studio 2015中更改VB.NET语言版本,但在这种情况下没有帮助。
在ReSharper属性中,我可以将四个不同项目中的每个项目的“ VB语言级别”设置为“ Visual Basic .NET 15”。这更改了项目的.DotSetting文件中的XML行,并且此设置更改了ReSharper分析代码的方式,但是,可惜,这并没有消除编译错误。
如何在Visual Studio 2017中启用对ASP.NET网站或Web应用程序项目中最新版本的VB.NET的支持?
要将最新的VB.NET或C#与ASP.NET Web应用程序和网站项目一起使用,您需要安装或更新两个Rosyln Nuget程序包。
微软:
当您打开的解决方案至少有一个针对.NET 4.5+的Web项目并且在“项目”菜单中没有DotNetCompilerPlatform NuGet软件包时,您将看到一个新选项,出现“启用C#6 / VB 14”。
以下屏幕截图来自VS2015,但该选项也应出现在VS2017中:
或者,绕过上面的GUI功能,直接进入Nuget程序包管理器,然后将以下程序包的最新版本安装到项目/站点中,以便尽可能使用VB.NET语言进行更新。 :
(注意,最新版本要求在系统上安装 .NET 4.6+ ,以便编译器运行,但可以针对任何平台编译代码)。
这可能会让您对C#6 / VB 14进行排序。获得VB 15的最后一步是:在web.config文件中编辑langversion,使其读取15.0(或者latest如果您希望使用的是最新版本,请在我的首选)。
<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=\"Web\" /optionInfer+"/>
</compilers>
Run Code Online (Sandbox Code Playgroud)
不幸的是,langversion在将Roslyn升级到C#7.0然后再升级到7.1之后,我发现自己必须进行编辑,因此绝对值得一提。
顺便说一句,此答案不仅适用于旧项目-如果使用的模板未引用Nuget编译器包,即使在VS 2017中创建的新Web项目也需要此修复程序。Roslyn不是强制性的,例如,新网站的模板据报道尚未更新。
解决方案非常简单:
| 归档时间: |
|
| 查看次数: |
3050 次 |
| 最近记录: |