Visul Studio 2017错误“ tp未能将tp编译到内存中的项目中”请使用语言版本7.3或更高版本

时间:2018-12-16 19:42:23

标签: c# visual-studio asp.net-core compiler-errors visual-studio-2017

我在ASP.Net Core 2.2框架的顶部有一个使用C#编写的项目。该项目始于ASP.NET Core 2.1,并已升级到2.2。

此项目包含的代码正在利用C#编译器7.3中的一些最新功能,这是我的项目进行编译所必需的。为了强制我的项目使用C#编译器7.3,我在.csproj文件

中添加了以下内容
<PropertyGroup>
   <LangVersion>7.3</LangVersion>
</PropertyGroup>

请注意,由于某些原因,项目无法编译,因此将<LangVersion>7.3</LangVersion>更改为<LangVersion>latest</LangVersion>无效。就像Visual Studio认为7.3不是最新版本或不知道它的存在一样。

以上代码使项目使用最新的C#编译器7.3进行编译。但是,我现在尝试使用以下步骤来搭建身份项目

  1. Solution Explorer 中,右键单击项目> 添加> 新脚手架项目
  2. 添加支架对话框的左窗格中,选择身份> 添加
  3. ADD身份对话框中,选择要覆盖的文件。
    1. 如有必要,选择布局
    2. 选择或创建数据上下文类
  4. 点击 ADD

但这给了我以下错误:“无法在内存中编译项目”

似乎Visual Studio 2017正在尝试在脚手架过程中使用C#编译器7.0而不是C#编译器7.3编译内存中的项目,这就是我收到此错误的原因。请记住,除非使用C#编译器7.3+,否则我的项目将无法编译。 enter image description here

如何强制Visual Studio 2017在项目和内存中的任何地方使用C#编译器7.3?

1 个答案:

答案 0 :(得分:0)

我知道有点晚了,但是错误很明显。您在两种情况下使用枚举通用约束

  

EnumMenuViewModel,第7行,第105列。

     

EnumOptionalMenuViewModel,第6行。

脚手架使用C#7.0编译项目,此功能不可用。

您可以禁用这些约束,运行脚手架,然后再次启用它。

我希望它能对某人有所帮助。