Visual Studio 2019 版本 16.11.0 - 错误 CS1576:为 #line 指令指定的行号丢失或无效

Nen*_*nad 35 asp.net-mvc razor asp.net-core visual-studio-2019

自从更新到 Visual Studio 2019 版本16.11.0cshtml (今天)以来,Razor MVC 视图编译在多个项目中的多个文件上失败:

错误 CS1576:为 #line 指令指定的行号丢失或无效

我尝试在global.json文件中设置 .NET Core SDK 的固定版本,该文件放置在 MVC Web 项目的根文件夹中,如此所述,但这也没有帮助。

Glo*_*del 36

在安装带有(正如您猜测的).NET Core 6.0 预览版的 Visual Studio for Mac 2022 预览版后,我在 Visual Studio for Mac 8.10.11 中的 .NET Core 5.0 Web 项目中遇到了相同的错误消息。正如现已删除的答案中提到的,它也可能在 Windows 上运行。

\n

@Failwyn\ 的回答中提到的预览功能(在首选项 \xe2\x86\x92 预览功能下)不包括使用 .NET SDK 预览的选项。按照@Nenad\'s 答案global.json中的描述进行添加也不起作用。

\n

幸运的是,我确实有另一个 .NET Core 5.0 项目可以编译,所以我能够找出原因。或者至少是解决方案:这是<LangVersion>从项目文件中删除指示:

\n
  <PropertyGroup Condition=" \'$(Configuration)|$(Platform)\' == \'Debug|AnyCPU\' ">\n    <LangVersion>latestmajor</LangVersion>\n  </PropertyGroup>\n  <PropertyGroup Condition=" \'$(Configuration)|$(Platform)\' == \'Release|AnyCPU\' ">\n    <LangVersion>latestmajor</LangVersion>\n  </PropertyGroup>\n
Run Code Online (Sandbox Code Playgroud)\n

这让我感到惊讶,因为它表示 C# 版本,但显然这也会影响 .NET SDK 版本。

\n

在此输入图像描述

\n

  • 正如 Glofindel 所经历的那样,其他解决方案对我不起作用,但从项目文件中删除 &lt;LangVersion&gt;latest&lt;/LangVersion&gt; 最终解决了问题。 (3认同)
  • 我最近在更新 Visual Studio 16.11.6 时也遇到了这个问题。我的 .csproj 文件中的条目是 `&lt;LangVersion&gt;latest&lt;/LangVersion&gt;`,删除这一行解决了我的问题,所以谢谢! (3认同)

Fai*_*wyn 22

更新:现在 .Net 6 不再被视为预览版,我们必须在 csproj 文件中将 LangVersion 从“最新”更改为“9”才能解决问题。

可以通过转到工具 -> 选项 -> 环境 -> 预览功能 -> 取消选中“使用 .Net SDK 预览(需要重新启动)”来修复此问题。

重新启动 Visual Studio,项目将再次生成。我在 Visual Studio 2019 中打开此功能来测试 .Net 6,它破坏了我所有的 .Net 5 项目。

  • 在最新版本 16.11.6 上得到了这个。“预览”默认关闭...仍在寻找解决方案。 (3认同)

Nen*_*nad 6

我找到了解决该问题的解决方法(至少对我来说)。

global.json将文件放置在Visual Studio 解决方案根文件夹中:

{
  "sdk": {
    "allowPrerelease": false
  }
}

Run Code Online (Sandbox Code Playgroud)

最初,我仅在 Web (MVC) 项目的根文件夹中添加global.json(更深一层),但它并不能解决问题。所以它必须是解决方案根文件夹。

  • @Alexander 你看过@Glorfindel 的解决方案吗?我在更新 VS 16.11.6 时也遇到了问题,他的解决方案对我有用(从主 .csproj 文件中删除 `&lt;LangVersion&gt;latest&lt;/LangVersion&gt;`。 (3认同)
  • 不起作用(VS 16.11.6) (2认同)
  • @d-nielsen 啊,是的 - 这有帮助(在`common.props`文件中找到“langversion”)。谢谢。 (2认同)