【问题标题】:(VS2017) There was an error running the selected code generator: 'Sequence contains no elements'(VS2017) 运行所选代码生成器时出错:“序列不包含元素”
【发布时间】:2018-07-05 14:41:57
【问题描述】:

我正在通过 one of Microsoft's tutorials 进行 MVC 开发,尝试创建各种元素时遇到错误;视图、控制器等。

我得到的错误如下:

There was an error running the selected code generator: 
'Sequence contains no elements'

每次我尝试创建一个新元素时,它都是一致的。早些时候,我通过复制视图并重新利用它来绕过错误。但从长远来看,这并不是最佳选择!

我目前正在做这个教程,其中出现了问题。但是,当我昨天在家开始本教程时(因此,在不同的网络上),我遇到了零问题。有什么要说的吗?

Here's a link to the project on GitHub.

您认为这是我的网络、我的项目本身的问题,还是完全不同的问题?

【问题讨论】:

  • 听起来像是 VS 安装问题...可能是安装的项目模板出了问题。
  • 我现在正在卸载,看看全新安装能否解决问题!
  • 我正在使用 ASP.NET MVC 6.0 和 VS2022 并收到“无序列”消息,尝试添加需要 ApplicationDbContext 的视图或控制器。这些解决方案都不起作用。

标签: c# asp.net-mvc visual-studio visual-studio-2017


【解决方案1】:

我赞成 @James 的评论,因为它对我有用,但我想将其添加为答案,以使其对其他人更可见:

打开包管理器控制台:

工具 > Nuget 包管理器 > 包管理器控制台

类型:

dotnet restore

无需重新启动/重新安装。

【讨论】:

  • 它对我有用。但需要在 dot net restore 后重建解决方案。谢谢
【解决方案2】:

Visual Studio 2019 和 .net core 3.0

已卸载: Microsoft.VisualStudio.Web.CodeGeneration.Design 版本:3.1.0-preview3.19558.8

并安装: Microsoft.VisualStudio.Web.CodeGeneration.Design 版本:3.0.0

为我解决了这个问题。

【讨论】:

    【解决方案3】:

    尝试清除 ComponentModelCache,下次启动 VS 时缓存会重建。

    1. 关闭 Visual Studio 删除此文件夹中的所有内容
    2. C:\Users\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache
    3. 重新启动 Visual Studio 14.0 适用于 Visual Studio 2015。这也适用于其他版本。

    感谢https://stackoverflow.com/a/35815094/5209435

    编辑

    web.config 文件的connectionString 部分中的providerNames 是否相同?

    您可能还想尝试来自herehere 的建议解决方案。

    【讨论】:

    • 我试过清除你提到的缓存——没有骰子!另一位用户 Miklós 评论说这可能是安装问题,所以我目前正在卸载 VS。 :) 感谢您的建议!
    • @PatrickChristensen 编辑了我的答案以包含更多建议。
    • 这对我有用,谢谢。我必须为 VS 2017 清理 C:\Users\xxxxx\AppData\Local\Microsoft\VisualStudio\15.0_24fd3914 (其中 xxxxx 是您的用户帐户名)
    • 我已经重命名了mini998提到的文件夹,启动VS2017。它将创建一个具有相似名称的新文件夹。删除新文件夹,然后用原来的文件夹替换。问题会自动修复。
    • Running dotnet restore in Tools>Nuget Package Manager>Package Manager Console 为我解决了这个问题。
    【解决方案4】:

    我在 Visual Studio 2019 中遇到了同样的错误。

    问题可以通过以下方式解决:

    • 关闭 Visual Studio
    • 删除“.vs”目录
    • 打开项目
    • 重建

    【讨论】:

    • 谢谢!这是我的解决方案,因为其他建议不起作用。当我尝试添加控制器时,在 2019 年打开 Visual Studio 2017 项目导致错误。
    【解决方案5】:

    如果您的 web.config 中有不同的连接字符串实例,则会发生错误

    注释掉其他不需要或必要的连接字符串标签,然后重新构建您的解决方案。就这些了

    【讨论】:

      【解决方案6】:

      这对我来说适用于 VS 2017。

      关闭已打开的 VS 2017 实例,再次打开。重建解决方案,现在创建视图、控制器等。现在将创建它。

      【讨论】:

        【解决方案7】:

        对我来说,Microsoft.VisualStudio.Web.CodeGeneration.Design 是使用错误的 .NetFramework 版本恢复的。所以我启动了包管理器控制台(工具> NuGet包管理器>包管理器控制台)并输入Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design -Version 3.0.0

        这为我解决了问题。

        【讨论】:

          【解决方案8】:

          以上所有答案都对我不起作用。

          但是,这是我收到的错误消息 -
          “检测到依赖约束 microsoft.aspnetcore.app 2.1.1 之外的包版本需要 microsoft.netcore.razor.design...bla bla bla”

          我如何克服它是通过 nuget 包管理器安装较低版本的 razor:

          步骤:

          在 Visual Studio 2017 上单击工具 > Nuget 包管理器 > 包管理器控制台,然后运行以下命令。

          安装包 Microsoft.VisualStudio.Web.CodeGeneration.Design -Version 2.1.1

          【讨论】:

            【解决方案9】:

            致在尝试构建升级的 .net6 项目时看到此错误的任何人。

            • 脚手架仅适用于新样式的 .net6 Minimal Hosting Model,而我仍然拥有 .net5 样式的程序和启动文件。

            这让我接下来遇到了一个令人沮丧的 EF Core 问题“无法解析服务”错误,这意味着 Scaffold 无法解析 EF 上下文,尽管它们在新 program.cs 中是正确的

            【讨论】:

            • 非常感谢!让我头疼了好几个小时,这对我很有帮助。
            【解决方案10】:

            卸载并重新安装 VS2017 不起作用。我可以创建类、项目和其他较小的元素。但是,创建控制器、视图等的问题仍然存在。

            【讨论】:

              【解决方案11】:

              我试图在 ASP.NET Core Web 应用程序(API 模板)中添加一个空 API 控制器。我在项目属性中发现目标框架没有设置。我将其设置为 .NET Core 2.1。

              如果您随后尝试添加控制器,您将收到错误消息,因为这行代码已添加到 Startup.cs

              services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
              

              并且 CompatibilityVersion 没有 Version2_2 的枚举,因此将其更改为 2_1:

              services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
              

              现在它可以添加控制器了。

              我在一个全新的项目中得到了这个。 Visual Studio 2017 15.9.11。

              我已经尝试过 dotnet restore 和清除 ComponentModelCache。

              【讨论】:

                【解决方案12】:

                您必须更新或安装 Microsoft.VisualStudio.Web.CodeGeneration.Design 包的版本。

                这是解决方案,尊重。

                【讨论】:

                  【解决方案13】:

                  我的项目针对其中一个依赖项 (Microsoft.VisualStudio.Web.CodeGeneration.Design) 发出警告。我删除了该依赖项,然后重建了项目。

                  然后我添加了一个新的 Razor 页面,并将依赖项重新添加到项目中 - 使用早期版本 (2.1.9),我现在可以毫无问题地添加 Razor 页面。

                  【讨论】:

                    【解决方案14】:

                    我没有证据表明根本原因,但是以下问题浪费了我两天前的时间来找出解决方案。

                    如果您的模型类中有大数据表类型,请检查以下单词是否存在

                    [Column(TypeName = "ubigint")]
                    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
                    

                    在您的模型类中。 只要把这两条线拿出来,一切都会好起来的。

                    【讨论】:

                      猜你喜欢
                      • 2020-08-10
                      • 2019-10-15
                      • 2016-05-13
                      • 1970-01-01
                      • 2014-01-13
                      • 1970-01-01
                      • 2013-11-24
                      • 2015-05-05
                      • 2022-07-25
                      相关资源
                      最近更新 更多