Asp.net mvc 如何让VisualStudio视图编辑器和预编译器使用C7?

Asp.net mvc 如何让VisualStudio视图编辑器和预编译器使用C7?,asp.net-mvc,visual-studio,visual-studio-2019,aspnet-compiler,Asp.net Mvc,Visual Studio,Visual Studio 2019,Aspnet Compiler,我们在发布期间尝试预编译ASP.Net项目时发现Visual Studio 2019存在问题。我们得到了如下错误: 错误CS1056:意外字符“$” 当我查看视图时,它使用字符串插值 此解决方案中的所有项目都设置为以完整的.Net Framework 4.6.1为目标。据我所知,这应该默认为C7.3编译器 我已将DomCompiler和编译器包更新为3.6.0版。在web.config中,我尝试将c版本同时设置为默认值和7。无论使用哪一个,都会发生错误 我还尝试将LangVersion添加到.c

我们在发布期间尝试预编译ASP.Net项目时发现Visual Studio 2019存在问题。我们得到了如下错误:

错误CS1056:意外字符“$”

当我查看视图时,它使用字符串插值

此解决方案中的所有项目都设置为以完整的.Net Framework 4.6.1为目标。据我所知,这应该默认为C7.3编译器

我已将DomCompiler和编译器包更新为3.6.0版。在web.config中,我尝试将c版本同时设置为默认值和7。无论使用哪一个,都会发生错误

我还尝试将LangVersion添加到.csproj文件并指定7,但也没有成功

如果我们部署的不是预编译的视图,那么这些视图可以工作,因此服务器上的运行时通常是正确的c编译器版本。这只是开发时间和构建时间问题。

Visual Studio 2019 Visual Studio 2019默认选择语言版本:

在项目上单击鼠标右键,然后选择“属性” 选择Build并单击Advanced按钮 点击 最新的C编译器根据 项目的一个或多个目标框架。VisualStudio没有 提供一个UI来更改值,但您可以通过编辑 csproj文件。选择默认值可确保使用最新版本 与目标框架兼容的语言版本

如果要覆盖语言版本,有3个选项:

手动编辑您的。 设置的语言版本。 配置。 第一个选项似乎可以实现您的目标,在您喜爱的文本编辑器中打开项目文件并添加语言版本,例如:

MyProject.csproj

有关详细说明,请参见。

Visual Studio 2019 Visual Studio 2019默认选择语言版本:

在项目上单击鼠标右键,然后选择“属性” 选择Build并单击Advanced按钮 点击 最新的C编译器根据 项目的一个或多个目标框架。VisualStudio没有 提供一个UI来更改值,但您可以通过编辑 csproj文件。选择默认值可确保使用最新版本 与目标框架兼容的语言版本

如果要覆盖语言版本,有3个选项:

手动编辑您的。 设置的语言版本。 配置。 第一个选项似乎可以实现您的目标,在您喜爱的文本编辑器中打开项目文件并添加语言版本,例如:

MyProject.csproj


有关详细说明,请参阅。

您不能将C7与针对4.6.1的.Net framework项目一起使用。使用哪个visual studio版本并不重要

请检查此链接:


在使用.net 4.5.2时,我遇到了同样的问题,即无法使用所有语言功能。您不能将c 7与针对4.6.1的.net framework项目一起使用。使用哪个visual studio版本并不重要

请检查此链接:


在使用.net 4.5.2时,我遇到了同样的问题,无法使用所有语言功能。您是否使用Visual Studio代码?否。与2019年相比,.net framework项目的目标是4.6.1 atm。因此,这让我感到困惑。.net 4.6.1的默认版本应该是7.3。但它似乎没有用那个。我将DOMCompiler更新为3.6.0,并在web.config而不是langversion=defualt中将其设置为7.3。这似乎解决了问题。我的解决方案中一定有什么东西把自动选择搞乱了。你是在使用Visual Studio代码吗?不是。与2019年相比,.Net framework项目的目标是4.6.1 atm。所以这让我很困惑。.net 4.6.1的默认版本应该是7.3。但它似乎没有用那个。我将DOMCompiler更新为3.6.0,并在web.config而不是langversion=defualt中将其设置为7.3。这似乎解决了问题。我的解决方案中一定有什么东西弄乱了自动选择。您的问题在.csproj中的某个地方,请发布其内容。如果您显示.csproj、web.config编译器部分以及packages.config,可能会有所帮助。某个地方使用了错误的编译器,可能是.net而不是visual studio附带的编译器?从visual studio命令提示符运行时显示?这将是visual studio使用的最新lang版本,尽管您可以针对项目的较低版本。您的问题在.csproj中的某个位置,请发布其内容。如果您显示.csproj、web.config编译器部分以及packages.config,可能会有所帮助。某个地方使用了错误的编译器,可能是.net而不是visual studio附带的编译器?从visual studio命令提示符运行时显示?这将是visualstudio使用的最新lang版本,尽管您可以针对项目中较低的lang版本。
<Project>
    <PropertyGroup>
        <LangVersion>latest</LangVersion>
        <!--<LangVersion>preview</LangVersion>-->
        <!--<LangVersion>7.3</LangVersion>-->
    </PropertyGroup>
</Project>
<Project>
    <PropertyGroup>
        <LangVersion>latest</LangVersion>
        <!--<LangVersion>preview</LangVersion>-->
        <!--<LangVersion>7.3</LangVersion>-->
    </PropertyGroup>
</Project>