.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 编译器? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

安装.Net Framework 4.8 时出现未安装成功

windows安装.net framework 4.0与4.8报错安装不上

OpenSolutionAsync - 找不到字段:.NET Framework 4.8 / 4.7.2 上的“Microsoft.Build.Utilities.ChangeWaves.Wave16

将.net framework 4 部署在docker中的全过程(支持4.0 到 4.8,3.5应该也可以)

(63)C#里.net Framework的版本

(63)C#里.net Framework的版本