index.g.cshtml在哪里

时间:2018-09-23 04:38:35

标签: visual-studio

我正在尝试完成本教程(ASP.Net Core Razor Pages),但是(通常)在构建解决方案时,出现CS0234错误,指出文件'Index.g.cshtml.cd中缺少命名空间。 '...…。但是该文件在哪里? 我试过了 1.所有构建/清理/重建解决方案选项。 2.我已经重新启动了Visual Studio 3.我已删除DEBUG文件并重新启动VS和FINALLY 4.我已经重新启动了PC。 似乎可行的唯一解决方案是删除整个解决方案/项目,然后重新开始。

当然必须对此进行修复吗? 你能帮忙吗?

9 个答案:

答案 0 :(得分:4)

我在这里遇到了与Visual Studio 2019 16.2.2相同的错误。对我来说,我已经更改了一些模型的名称,而不是在使用模型的实际视图中发现错误,而是在page.g.cshtml中而不是在page.cshtml中显示该错误。

因此,我的解决方案非常简单。如果错误是在page.g.cshtml中,请忽略g,转到视图page.cshtml,将模型名称更新为正确的名称,重建并消除错误。

答案 1 :(得分:3)

右键单击您的项目,然后在资源管理器中打开文件夹。然后搜索“ Index.g.cshtml.cs” 然后删除文件搜索结果

确保您的Index.cshtml引用正确的模型。

答案 2 :(得分:1)

这个问题实际上没有真正的答案。 事实证明,该文件是在DEBUG文件夹中创建的。 但是,删除Debug文件夹后,仍然出现错误。 所以这一定是VS错误吗?

答案 3 :(得分:0)

您可以尝试以下解决方案

  1. 转到C:\ Temp \ msbuild 2.您会在其中找到带有项目名称的文件夹,并在这些文件夹中找到这些文件,如下图所示
  2. 尝试删除这些文件并重建可能对您有帮助的解决方案

答案 4 :(得分:0)

尝试清除所有项目中的所有obj文件夹,然后重新构建。这是由编译器生成的代码的一部分,有时它不与视图本身同步,即使应清除所有内容的Rebuild也不起作用。手动执行。希望这会有所帮助

答案 5 :(得分:0)

如果错误表明xxx.g.cshtml.cs中缺少using指令或名称空间,则通常意味着在直接查看中存在c#指令,编译器无法解析。

就我而言,我在局部视图中有以下陈述:

@inject UserManager<AppUser> UserManager

然后我继续将AppUser类从Web应用程序Namespace.Web.AppUser重构为Namespace.Entities.AppUser,这随后导致了该错误。

有多种解决方法。 最简单的方法是使用完全限定的类型名称空间:

@inject UserManager<Namespace.Entities.AppUser> UserManager

如果在另一个项目中,请不要忘记添加对另一个项目的引用。 或者:添加using语句:

@using Namespace.Entities;

或:将上述using语句添加到您的~\Views\_ViewStart.cshtml中。这将使该类在所有视图中可用。

答案 6 :(得分:0)

最近我遇到了同样的问题,

尝试以下简单方法

  1. 复制错误并将其粘贴到记事本中。在那里,您可以看到错误文件的原始根本原因路径,例如'YourProjectFolder'\obj\Debug\netcoreapp2.2\Razor\Views\'View Name'\index.g.cshtml.cs

  2. 找到文件,如果错误仍然存​​在,请在index.cshtml文件中引用正确的命名空间,否则请删除文件并重建。

  3. 还要检查您是否有重复的文件,并且该文件已从项目中排除。如果存在,则也删除文件

  4. 现在清理并重建项目。 (您可能需要清理,关闭VS,然后重新构建)

答案 7 :(得分:0)

这是Microsoft.AspNetCore.Razor.Design软件包问题。

我在VS2017中尝试了2.2版本,该版本不支持此版本,并在obj目录中给出了“ .g.cshtml找不到”。

我解决了以下问题:

  • 我将项目2.2的ASP.NET Core版本降级为2.1

  • startup.cs 中完成的更改:

    1. 从CompatibilityVersion.Version_2_2到CompatibilityVersion.Version_2_1
    2. 将Nuget软件包的所有dll更改为2_1支持dll
    3. SDK确保其2.1.x

问题已解决。

答案 8 :(得分:0)

如果您的解决方案因为那些 .g .cs 文件而一直失败,那可能是因为您忘记更新您可能已经移动的类的命名空间,在实际的 cshtml 文件中(例如通过注入所述命名空间).

这就是为我解决问题的原因: https://til.secretgeek.net/.net_core_MVC/error_in_g_cs.html