.Net Framework 4.8 for asp.net 中是不是包含 C# 7.3 编译器? [复制]
Posted
技术标签:
【中文标题】.Net Framework 4.8 for asp.net 中是不是包含 C# 7.3 编译器? [复制]【英文标题】:Is C# 7.3 compiler included in .Net Framework 4.8 for asp.net? [duplicate].Net Framework 4.8 for asp.net 中是否包含 C# 7.3 编译器? [复制] 【发布时间】:2019-10-28 12:00:40 【问题描述】:我很困惑。几年前,我从 Github 安装了Microsoft.CodeDom.Providers.DotNetCompilerPlatform
:
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
现在我可以在我的 Asp.Net 站点中获得最新的 C# compiler
,独立于 .Net Framework 版本,只需在部署到生产服务器时包含该软件包即可。
然而,今年夏天情况发生了变化。如果我理解正确的话,.Net Framework 4.8 版现在默认使用 C# 7.3。
我的问题是:这也适用于 Asp.net 吗?还是我还需要将编译器从 Github 部署到我的 Web 服务器?
.Net Framework 4.8 中是否包含 C# 7.3 编译器?
【问题讨论】:
docs.microsoft.com/en-us/dotnet/csharp/language-reference/… 理想情况下,只需在网络服务器上安装 .net framework 4.8。 @Daniel,我读过那篇文章,其中没有提到 asp.net(至少在早些时候是不同的——因为它在服务器上运行)。 ASP.NET 是 .NET 框架的一部分,因此框架包含的所有内容也都包含在 asp 中。它们不是分开的东西。 ASP.NET 核心是不同的。 【参考方案1】:cmets 错了!
尽管我安装了 .Net 4.8,但 Asp.Net 网站仍然使用 C# 7.0 编译器!
我借此机会在我的一个网站(有问题的链接)上从 Github 上卸载了“Roslyn”编译器。现在我在编译时遇到了很多错误。
错误示例(这是一个属性):
public bool IsReusable => false;
这在 C# 7.0 中不起作用。所以我必须在我的网站上保留'Roslyn'
编译器才能获得 C# 7.3
更新:
对于刚从 Github 安装“Roslyn”编译器的任何人:您必须在 Web.config 中手动设置 langversion
,如下所示:
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:7.3 /nowarn:1659;1699;1701" />
现在 asp.net 将使用 C# 7.3 编译器。
【讨论】:
任何经验更新 roslyn 编译器...或者如何获取最新的“roslyn”添加到 Bin 目录?新建一个空网站后,针对Framework 4.8,我用nuget搜索CodDom,拉下来3.6.0,但是Bin里没有roslyn目录...以上是关于.Net Framework 4.8 for asp.net 中是不是包含 C# 7.3 编译器? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
windows安装.net framework 4.0与4.8报错安装不上
OpenSolutionAsync - 找不到字段:.NET Framework 4.8 / 4.7.2 上的“Microsoft.Build.Utilities.ChangeWaves.Wave16