【问题标题】:The EntityFramework package is not installed on projectEntityFramework 包未安装在项目中
【发布时间】:2012-08-12 14:47:25
【问题描述】:

我无法将 EF 安装在名为“Match”的非常简单的项目中(刚刚学习 MVC,迟到总比没有好)。这里的一般上下文是我创建了只有 2 个字段的 Model 类,现在我想更改 Model 类以拥有更多的字段/属性。我已经在 Model 类中进行了更改,现在正在尝试更新数据库以匹配。我正在尝试使用 EF 的 Update-Database 来做到这一点。

PM> install-package EntityFramework 您正在从 Microsoft 下载 EntityFramework,其许可协议位于 http://go.microsoft.com/fwlink/?LinkId=253898&clcid=0x409。检查软件包是否有其他依赖项,这些依赖项可能附带他们自己的许可协议。您对包和依赖项的使用构成您接受他们的许可协议。如果您不接受许可协议,请从您的设备中删除相关组件。 成功安装“EntityFramework 5.0.0”。 已成功将“EntityFramework 5.0.0”添加到 Match。

键入“get-help EntityFramework”以查看所有可用的实体框架命令。

PM> 启用迁移 Get-Package:找不到与参数名称“ProjectName”匹配的参数。 在 C:\Users\Dave\Documents\Visual Studio 2010\Projects\Match\packages\EntityFramework.5.0.0\tools\EntityFramework.psm1:611 char:40 + $package = 获取包 -ProjectName

EntityFramework 包未安装在项目“Match”上。

【问题讨论】:

  • 您的工作是模型优先还是代码优先?你用什么命令来更新数据库?
  • 只和这个项目有关吗?可以将 EF 添加到其他项目吗?
  • 在这篇文章中发现了一个类似的问题:stackoverflow.com/a/7873572/461958。看看是否有帮助。如果是这样,则将此出租车标记为重复帖子。
  • 我使用的是代码优先模型。出于某种原因,当我删除我使用 GUI 版本的包管理器安装的实体框架包(安装版本 5.0.0)并使用控制台安装版本 4.3.1 时,它开始工作
  • 就我而言,我安装了导致依赖项问题的软件包。当我删除它时,它可以完美运行

标签: asp.net-mvc entity-framework visual-studio nuget-package


【解决方案1】:

就我而言,重新启动 Visual Studio 会有所帮助。

【讨论】:

  • 这实际上为我解决了这个问题,所以我不同意并说这是该问题的许多潜在答案之一。
  • 不认为这有帮助,但我试过了,它已经解决了问题。
  • agh 以为是 .netcore 升级,错误消息是 Update-Database : Parameter cannot be processed because the parameter name 'c' is ambiguous. Possible matches include: ...
  • 我没想到会这样,但它确实奏效了。没有其他工作,其他所有设置都正确设置,并在关闭和重新打开后设置相同。
  • 这解决了你面临的 99% 的问题,你只需要记住这一点
【解决方案2】:

我刚刚重新启动了 Visual Studio,它工作正常。

【讨论】:

    【解决方案3】:

    希望没有人像我一样愚蠢,但为了搜索者的利益:

    此错误的一种可能性 - 在包管理器控制台中,有一个“默认项目”下拉菜单。如果设置不正确,您将获得 EntityFramework 包未安装在项目“x”上。将下拉菜单更改为您的 EF 项目,一切都很好。

    【讨论】:

    • 这对我来说是个问题,但是在我重新启动 VS 之前,下拉菜单是空的。
    • 更改 Visual Studio 版本似乎会将默认项目设置为“”(无)。这也为我解决了问题。
    • 我就是这么傻。感谢您的提示!
    【解决方案4】:

    我遇到过这个问题,我通过安装 Microsoft.EntityFrameworkCore.Tools nuget 包解决了它

    该软件包将启用这些常用命令: 添加迁移 删除数据库 获取 DbContext 获取迁移 移除迁移 脚手架-DbContext 脚本迁移 更新数据库

    【讨论】:

      【解决方案5】:

      只需将 NuGet 更新到 2.x。 EF 5.0 需要它。

      【讨论】:

        【解决方案6】:

        打开包管理器控制台并从包管理器控制台的下拉列表中选择默认项目并在命令窗口中使用此命令安装实体框架。

        install-Package Entityframework
        

        【讨论】:

          【解决方案7】:

          在我的项目中,我分别在它们上安装了 EntityFramework。即使他们在每个项目上都有相同的版本号,它仍然不起作用。导致你得到同样的错误。

          为了解决这个问题,我从所有项目中删除了 EntityFramework 并重新安装。

          Get-Project -all | Uninstall-Package EntityFramework
          

          接下来,您只需重新安装它。

          Get-Project -all | Install-Package EntityFramework
          

          【讨论】:

          • 在我的情况下,我执行了卸载步骤,然后仅在我拥有 DbContext 的项目上重新安装了实体。
          【解决方案8】:

          在我的情况下,重新安装实体包并重新启动 Visual Studio。

          【讨论】:

            【解决方案9】:

            就我而言,我在我的项目中安装了 Microsoft.EntityFrameworkCore.Tools 包!问题已解决。

            【讨论】:

              【解决方案10】:

              我也有同样的问题。 我已将 EFCore 添加到已安装 EF6 的项目中。 因此使用 EF6 设置为 EFCore 时执行 add-migration xx 命令,我收到此错误。 删除 EF6 并重新启动 Visual Studio 解决了我的问题。

              【讨论】:

                【解决方案11】:

                就我而言,我有一个项目由于某种原因没有 Packages.config 文件。结果是我收到错误消息“EntityFramework package is not installed on project xxxx”。

                要解决这个问题,只需添加一个 Packages.config 文件和“Install-Package EntityFramework”即可。

                【讨论】:

                  【解决方案12】:

                  尝试从项目的 Nuget 包管理器更新实体框架包,这解决了我的问题。

                  【讨论】:

                    【解决方案13】:

                    您必须将 EF 安装到您的项目中。您可以通过工具|管理 NuGet 包来执行此操作,在“已安装”下查看并单击“管理”。在那里,您将看到在您的项目中安装 EF 的选项。之后,一切都应该正常工作并且模型更改将成为可能。 这可能需要相当长的时间(就我而言,确实如此!)。 成功! 彼得

                    【讨论】:

                      【解决方案14】:

                      在我的情况下,packages.config 文件在磁​​盘上,但不在 TFS 中。

                      【讨论】:

                        【解决方案15】:

                        如果在 Visual Studio 解决方案中卸载实体框架命令的目标项目(即,如果您之前在解决方案资源管理器中右键单击该项目并选择“卸载项目”),则可能会发生此错误。

                        在这种情况下,解决方案是加载项目,然后再次尝试运行实体框架命令。

                        【讨论】:

                          【解决方案16】:

                          如果你是第一次打开项目应该可以,

                          第二次点击控制台项目,“设置为stratup项目”

                          【讨论】:

                            【解决方案17】:

                            安装 EntityFrameworkCore 安装 EntityFrameworkCore.SqlServer 然后关闭 Visual Studio 并重新打开 问题已解决

                            【讨论】:

                              【解决方案18】:

                              您还可以在 VS 中清除缓存 NuGet。解决了我的问题

                              【讨论】:

                                【解决方案19】:

                                就我而言,我有一个包含三个项目的 Xamarin.Forms 解决方案 - 后端(用于 Azure 数据库连接)、一个公共库、一个 iOS 项目和一个 Android 项目。我收到的错误消息是“EntityFramework 包未安装在项目中...”“在程序集中找不到上下文类型...”。我已经通过将后端设置为我的启动项目,然后在包管理器控制台中输入以下格式的命令来解决它:

                                Enable-Migrations -ProjectName Backend -Verbose
                                

                                然后

                                add-migration -ProjectName Backend Initial
                                

                                我希望这对某人有帮助:)

                                【讨论】:

                                  【解决方案20】:

                                  此问题可能与 EntityFramework 和 EntityFrameworkCore 两个版本的冲突有关。要检查它,您可以在包管理器控制台中写:Get-Module。如果您同时看到 EntityFramework 和 EntityFrameworkCore,则需要删除 EntityFramework 或在 EntityFramework 上链接的依赖项。对于搜索依赖项,您可以在解决方案资源管理器中使用搜索解决方案输入。删除依赖或EntityFramework后需要重启项目。

                                  【讨论】:

                                    猜你喜欢
                                    • 1970-01-01
                                    • 2022-12-18
                                    • 2018-03-01
                                    • 1970-01-01
                                    • 2012-10-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 1970-01-01
                                    相关资源
                                    最近更新 更多