选定的代码生成器运行时出现错误:'对象引用未设置为对象的实例。' 错误?

23

在此输入图像描述

我尝试了所有的解决方案,如修复 VS 2013,但都没有用。 当您通过右键单击 Controller 文件夹并添加控制器时,再右键单击新创建的控制器的 Action 并选择添加视图时,就会发生这种情况,即我在尝试创建视图时。这不是一个新项目,而是一个已存在的项目。


1
我在 VS 2015 中遇到了类似的错误。在添加控制器后再添加视图,然后构建解决方案可以解决问题。 - Aht
我遇到了同样的问题,我认为这与EF和MySQL驱动程序有关... - pojomx
4
重启 Visual Studio 解决了我的问题。 - niico
26个回答

8

我曾经在VS2017上遇到了这个问题, 并通过以下方式解决:
前往 C:\Users\用户名\AppData\Local\Microsoft\VisualStudio\15.0_7fca0c70,你会看到一个名为 ComponentModelCache 的文件夹,将其重命名为 _ComponentModelCache 或其他任何名称,Visual Studio将重新创建此文件夹。
请注意,在 VisualStudio 文件夹名称下的15.0_7fca0c70 可能因您使用的 VS 版本而不同。现在问题已经解决。希望能对某些人有所帮助。


这对我有用。文件夹 17.0xxxx 适用于 VS2022。 - Darren M

8

对我来说,错误与我的解决方案中有一个项目有关,它是一个.NET Core项目库,并被包含 DbContext 的项目引用。

移除(或更改类型)该.NET core库解决了问题。


我想这可能是我遇到的问题 ;-( 这是我第一次尝试在 .NET Core 项目中使用脚手架工具。它在 Framework 版本的库中总是能正常工作。 - bkwdesign
这正是我的问题所在。我卸载了 Core 项目,然后重新运行了代码生成器。当它完成后,重新加载 Core 项目,编译一下,就大功告成了。 - RC Cola

6

删除解决方案目录中的.vs文件夹对我有效。


4

Visual Studio 2019/2022:

  1. 清除项目
  2. 重新生成项目
  3. 关闭并重新打开 Visual Studio 2022

如果不起作用 -> 将 Microsoft.VisualStudio.Web.CodeGeneration.Design NuGet 包更新到最新版本,然后再试一次。


2

我在Visual Studio 2017中也遇到了同样的错误,我通过以下解决方法修复:

1- 如果您使用任何数据库,则必须安装所有驱动程序(我的意思是Nugget包等...)(我使用MySql db,所以我必须首先安装MySql安装程序并安装MySql、Data、EntityFramWorkCore)

2- 我使用Visual Studio Installer更新我的Visual Studio(您必须在开始菜单中搜索Visual Studio Installer并运行它,然后选择更新按钮(不需要添加任何新组件或代码))

这对我有用,希望这能帮助到您。

原始答案:Original Answer


1
我的问题(具体来说是“对象引用未设置为对象实例。”错误)通过将解决方案中的一些项目从.net standard 2.0更改为.Net Framework 4.8而得到解决。
这受到了Timo Hermans的答案的启发,我尝试了删除先前有所帮助的ComponentModelCache的主要答案。
在我进行脚手架的项目中,我追踪了链接到我正在使用的模型的项目,并将它们更改为net48。我不必将它们全部更改,因此不太确定哪些项目,但我从Models项目开始,然后跟随其他关键项目将它们改回net48,直到脚手架再次工作为止。
希望这对某人有用,因为它让我发疯了!

我也遇到了同样的问题,当我将一个标准项目引用更改为框架时,一切都正常工作了。 - rasputino

1

尝试了以下所有答案,但都没有成功:

  • 清理解决方案
  • 删除旧的迁移
  • 关闭并重新打开Visual Studio
  • 删除Visual Studio临时组件文件夹

这个方法起作用了:

  • 从包管理器控制台卸载包(Microsoft.VisualStudio.Web.CodeGeneration.Design),然后重新安装它。

我的环境: Visual Studio 2019 - Razor Pages - .Net Code 2.2 - Windows 10


我不得不移除GCop,因为它引用了过时的Microsoft.VisualStudio.Web.CodeGeneration.Design版本。 - KSwift87
@KSwift87 看起来某些组件文件崩溃了,需要刷新。 - Mohamed Nagieb

1

对我非常有效的简单步骤

  1. 从解决方案中移除该项目
  2. 使用“添加现有项目”将相同的项目重新添加回来
  3. 现在构建和添加视图,它就能正常工作了

0

我的主要ASP.Net MVC项目旁边有一个Standard .Net v2类库,它的目标是.Net Framework v4.6.2。在创建了几个控制器之后,突然出现了上述错误。

所以我:

  1. 删除了对类库的引用
  2. 完全删除了类库
  3. 创建了另一个使用.Net Framework v4.6.2的类库

    问题得到解决。


0

由于我最初引用了一个包含数据访问和业务逻辑代码的类库作为我的项目,因此通过启动一个全新的项目来解决错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接