更新了现有的Web Site项目类型Visual Studio 2015,我将Framework更改为4.6。
然后我希望在我的代码隐藏文件中可以使用所有这些新功能。
不幸的是我收到如下错误:
错误 CS8026:功能“表达式主体属性”在 C# 5 中不可用。请使用语言版本 6 或更高版本。
or e.g.:
错误 CS8026:“内插字符串”功能在 C# 5 中不可用。请使用语言版本 6 或更高版本。
我快速谷歌检查并发现一个人发表了一些评论 http://weblogs.asp.net/scottgu/released-today-visual-studio-2015-asp-net-4-6-asp-net-5-ef-7-previews#comment-47327在 ScottGu 的博客文章中(在页面上搜索“8026”)。
由于我不理解他的解决方案,而且我想让解决方案更加明显,所以我创建了这个 SO 帖子。
我的问题:
我如何拥有 Visual Studio 2015 类型的项目Web Site(即不Web应用程序)识别 C# 6 功能?
我已经使用 ASP.NET MVC 5(测试过 5.2.3)对此进行了测试,您的情况可能会因其他 Web 框架而异,但您只需添加NuGet http://en.wikipedia.org/wiki/NuGet包用于罗斯林 CodeDOM https://en.wikipedia.org/wiki/.NET_Compiler_Platform.
Microsoft.CodeDom.Providers.DotNetCompilerPlatform https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/应该添加DLL文件...
PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
使用新的 .NET 编译器平台(“Roslyn”)编译器作为服务 API 的替换 CodeDOM 提供程序。这为使用 CodeDOM 的系统中的新语言功能(例如 ASP.NET 运行时编译)提供了支持,并提高了这些系统的编译性能。
...并将以下内容添加到您的 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>
如果 XML 仍然丢失,请尝试自行添加。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)