Visual Studio 2019 版本 16.11.0 - 错误 CS1576:为 #line 指令指定的行号丢失或无效
Visual Studio 2019 version 16.11.0 - error CS1576: The line number specified for #line directive is missing or invalid
自更新到 Visual Studio 2019 版本 16.11.0(今天)以来,Razor MVC 视图的编译在多个项目中的多个 cshtml
文件上失败:
error CS1576: The line number specified for #line directive is missing
or invalid
我已尝试在 global.json
文件中设置固定版本的 .NET Core SDK,该文件位于 MVC Web 项目 的根文件夹中,如所述here,但这也无济于事。
我遇到了同样的问题。我认为这是因为我最近将 .Net 6
更新为售前赛 7
但看起来 16.11
版本中某处存在严重错误。
我找到了解决问题的方法(至少对我而言)。
将 global.json
文件放入 Visual Studio 解决方案根文件夹:
{
"sdk": {
"allowPrerelease": false
}
}
最初我只在我的 Web (MVC) 项目(更深一层)的根文件夹中添加了 global.json
,但它没有解决问题。所以它必须是解决方案根文件夹。
更新:现在 .Net 6 不再被视为预览版,我们必须在 csproj 文件中将 LangVersion 从“最新”更改为“9”以解决此问题。
这可以通过转到工具 -> 选项 -> 环境 -> 预览功能 -> 取消选中“使用 .Net SDK 的预览(需要重新启动)”来解决。
重新启动 Visual Studio,项目将再次生成。我在 Visual Studio 2019 年打开它来测试 .Net 6,它破坏了我所有的 .Net 5 项目。
在为 Mac 2022 安装 Visual Studio 之后,Visual Studio for Mac 8.10.11 中的 .NET Core 5.0 Web 项目出现了相同的错误消息使用(正如您猜测的那样).NET Core 6.0 Preview 进行预览。如 now deleted answer.
中所述,它也可能适用于 Windows
, under Preferences → Preview Features did not include the option to use previews of the .NET SDK. Adding global.json
as described in 中提到的预览功能也不起作用。
幸运的是,我确实有另一个 .NET Core 5.0 项目可以编译,所以我能够找出原因。或者至少是解决方案:这是从项目文件中删除 <LangVersion>
指示:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<LangVersion>latestmajor</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<LangVersion>latestmajor</LangVersion>
</PropertyGroup>
这让我感到惊讶,因为它指示 C# 版本,但显然这也会影响 .NET SDK 版本。
我在安装 VS 2022 后遇到了同样的问题,但是 none 的答案对我有所帮助,但它为我指明了方向。
我无法在 属性 页面中编辑语言。
我不得不向无法构建的 csproj 添加以下行。
在 属性 组中,就在我的 .netcore 3 项目的 AsseblyName 所在的位置。
<LangVersion>8</LangVersion>
“最新”的技巧没有用,所以我不得不根据使用的 .net 框架版本从这个 table select 版本:
编译器根据这些规则确定默认值:
DEFAULTS
Target framework C# language version default
.NET 6.x C# 10
.NET 5.x C# 9.0
.NET Core 3.x C# 8.0
.NET Core 2.x C# 7.3
.NET Standard 2.1 C# 8.0
.NET Standard 2.0 C# 7.3
.NET Standard 1.x C# 7.3
.NET Framework all C# 7.3
来源:
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/configure-language-version
我发现更新到 vs 2022 解决了我的问题
None 以上解决方案对我有用。无论如何,四处走动并更改项目文件可能会给使用不同版本 Visual Studio.
的其他团队成员带来其他问题
我最近安装了 Visual Studio Community 2022,我刚刚卸载了它,问题就消失了。我想我们会在一段时间内避免在同一台机器上同时使用 2019 年和 2022 年...
自更新到 Visual Studio 2019 版本 16.11.0(今天)以来,Razor MVC 视图的编译在多个项目中的多个 cshtml
文件上失败:
error CS1576: The line number specified for #line directive is missing or invalid
我已尝试在 global.json
文件中设置固定版本的 .NET Core SDK,该文件位于 MVC Web 项目 的根文件夹中,如所述here,但这也无济于事。
我遇到了同样的问题。我认为这是因为我最近将 .Net 6
更新为售前赛 7
但看起来 16.11
版本中某处存在严重错误。
我找到了解决问题的方法(至少对我而言)。
将 global.json
文件放入 Visual Studio 解决方案根文件夹:
{
"sdk": {
"allowPrerelease": false
}
}
最初我只在我的 Web (MVC) 项目(更深一层)的根文件夹中添加了 global.json
,但它没有解决问题。所以它必须是解决方案根文件夹。
更新:现在 .Net 6 不再被视为预览版,我们必须在 csproj 文件中将 LangVersion 从“最新”更改为“9”以解决此问题。
这可以通过转到工具 -> 选项 -> 环境 -> 预览功能 -> 取消选中“使用 .Net SDK 的预览(需要重新启动)”来解决。
重新启动 Visual Studio,项目将再次生成。我在 Visual Studio 2019 年打开它来测试 .Net 6,它破坏了我所有的 .Net 5 项目。
在为 Mac 2022 安装 Visual Studio 之后,Visual Studio for Mac 8.10.11 中的 .NET Core 5.0 Web 项目出现了相同的错误消息使用(正如您猜测的那样).NET Core 6.0 Preview 进行预览。如 now deleted answer.
中所述,它也可能适用于 Windowsglobal.json
as described in
幸运的是,我确实有另一个 .NET Core 5.0 项目可以编译,所以我能够找出原因。或者至少是解决方案:这是从项目文件中删除 <LangVersion>
指示:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<LangVersion>latestmajor</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<LangVersion>latestmajor</LangVersion>
</PropertyGroup>
这让我感到惊讶,因为它指示 C# 版本,但显然这也会影响 .NET SDK 版本。
我在安装 VS 2022 后遇到了同样的问题,但是 none 的答案对我有所帮助,但它为我指明了方向。
我无法在 属性 页面中编辑语言。
我不得不向无法构建的 csproj 添加以下行。 在 属性 组中,就在我的 .netcore 3 项目的 AsseblyName 所在的位置。
<LangVersion>8</LangVersion>
“最新”的技巧没有用,所以我不得不根据使用的 .net 框架版本从这个 table select 版本:
编译器根据这些规则确定默认值:
DEFAULTS
Target framework C# language version default
.NET 6.x C# 10
.NET 5.x C# 9.0
.NET Core 3.x C# 8.0
.NET Core 2.x C# 7.3
.NET Standard 2.1 C# 8.0
.NET Standard 2.0 C# 7.3
.NET Standard 1.x C# 7.3
.NET Framework all C# 7.3
来源: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/configure-language-version
我发现更新到 vs 2022 解决了我的问题
None 以上解决方案对我有用。无论如何,四处走动并更改项目文件可能会给使用不同版本 Visual Studio.
的其他团队成员带来其他问题我最近安装了 Visual Studio Community 2022,我刚刚卸载了它,问题就消失了。我想我们会在一段时间内避免在同一台机器上同时使用 2019 年和 2022 年...