问题描述
更新了现有的网站项目类型 Visual Studio 2015,我将框架更改为 4.6.
Updated an existing Web Site project type Visual Studio 2015, I changed the Framework to 4.6.
然后我希望在我的代码隐藏文件中提供所有这些新功能.
I then expected to have all those new features available in my code behind files.
不幸的是,我收到如下错误:
Unfortunately I'm getting errors like:
错误 CS8026:功能表达式主体属性"在 C# 5 中不可用.请使用语言版本 6 或更高版本.
或例如:
错误 CS8026:功能内插字符串"在 C# 5 中不可用.请使用语言版本 6 或更高版本.
我在 Google 上进行了快速检查,发现 一个人在 ScottGu 的博文中发表了一些评论(在页面上搜索8026").
I did a quick Google check and found a guy posting some comments in a blog posting of ScottGu (search for "8026" on the page).
由于我不理解他的解决方案,而且我想让解决方案更加明显,所以我创建了这个 SO 帖子.
Since I do not understand his solution, plus I want to have the solution more visible, I've created this SO posting.
我的问题:
如何让 Web 站点(即不是 Web 应用程序)类型的 Visual Studio 2015 项目识别 C# 6 功能?
How can I have a Visual Studio 2015 project of type Web Site (i.e. not Web Application) to recognize C# 6 features?
推荐答案
我已经用 ASP.NET MVC 5 测试过这个(测试 5.2.3),你的里程可能会因其他 web 框架而异,但你只需要添加 Roslyn CodeDOM|NuGet 包
I've tested this with ASP.NET MVC 5 (tested 5.2.3), and your mileage may vary with other web frameworks, but you just need to add the Roslyn CodeDOM| NuGet package
使用新的 .NET 编译器平台(Roslyn")编译器作为服务 API 的替换 CodeDOM 提供程序.这为使用 CodeDOM 的系统(例如 ASP.NET 运行时编译)中的新语言功能提供支持,并提高这些系统的编译性能.
PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/
NuGet 包应添加 DLL 文件并将以下内容添加到您的 web.config.
The NuGet package should add the DLL files and add the following to your web.config.
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE="Web" /optionInfer+" />
</compilers>
</system.codedom>
如果它仍然丢失.尝试添加自己.
If it's still missing. Try adding yourself.
这篇关于如何在网站项目类型中使用 C# 6?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!