【问题标题】:The term 'Add-migration' is not recognized - VS2017 and EntityFrameworkCore无法识别术语“添加迁移”-VS2017 和 EntityFrameworkCore
【发布时间】:2020-05-09 11:16:14
【问题描述】:

我发布这个问题以防万一我找到的解决方案可以帮助其他人。在 Visual Studio 2017 rc4 工作时,我每次尝试在包管理器控制台中运行 Add-Migration 命令时都会收到以下错误:

无法识别术语“添加迁移”...

【问题讨论】:

    标签: entity-framework-core visual-studio-2017


    【解决方案1】:

    在尝试了一大堆其他解决方案后对我有用的解决方案是:

    • 右键单击我的项目
    • 选择Manage Nuget Packages
    • 选择浏览标签
    • Include prerelease复选框
    • 安装Microsoft.EntityFrameworkCore.Tools

    注意,Visual Studio 2017 中的 aspnetcore 项目似乎没有 project.json 文件。

    【讨论】:

    • 对于那些想知道这些软件包如何工作的人。 Microsoft.EntityFrameworkCore.Tools 用于包管理器控制台,即Add-Migration Update-DatabaseMicrosoft.EntityFrameworkCore.Tools.DotNet 用于命令行。 dotnet ef migrations addMicrosoft.EntityFrameworkCore.Tools 属于 PackageReferenceMicrosoft.EntityFrameworkCore.Tools 属于 DotNetCliToolReference
    【解决方案2】:

    您只需要初始化 powershell 模块。我相信这是一个错误,但它很容易解决。您需要做的就是找到 init.ps1 文件并点源它。

    只需在包管理器控制台中输入:

    C:\Users\YourUserAccount\.nuget\packages\Microsoft.EntityFrameworkCore.Tools\1.1.0-preview4-final\tools\init.ps1

    现在版本对您而言可能会有所不同,具体取决于您安装的版本。确保点源与项目中的版本相同。

    【讨论】:

    • 谢谢!我开始突然发现这个错误。重新安装nuget包并没有解决它。非常令人沮丧。这解决了它。
    • 这里也一样。其实对我来说已经第二次坏了,第二次来这里求助,谢谢!
    • 这应该被标记为正确答案。这是唯一有帮助的解决方案。我已经添加了所有必需的依赖项和 clitools 引用,尽管 dotnet ef 命令有效,但它仍然无法工作,但在我运行此命令之前它仍然无法工作。
    【解决方案3】:

    你好

    这在微软几乎是一个正常的问题,他们指出了相同的解决方案:

    Microsoft Docs - Getting Started with EF Core on ASP.NET Core with a New database

    对我来说,上面并没有解决我的问题,但这条线首先解决了:

    PM> Install-Package Microsoft.EntityFrameworkCore.Tools
    PM> add-migration InitialCreate
    

    /干杯,简

    【讨论】:

      【解决方案4】:

      如果您使用的是 VS 2019 和 Dot.net 核心版本 3.1

      只需从管理 NuGet 包安装:Microsoft.EntityFrameworkCore.Tools

      这解决了我的问题。

      【讨论】:

        【解决方案5】:

        我在使用 VS2017 版本 15.9.4 和 .Net Core 2.1 创建的项目中遇到了同样的问题。

        我已通过将 Microsoft.EntityFrameworkCore.Tools 添加到我的项目的依赖项来修复它。

        1. 项目上选择管理 Nuget 包
        2. 浏览和搜索 Microsoft.EntityFrameworkCore.Tools
        3. 在您的项目中安装它

        然后您可以打开 Package Manager Console 并使用命令: 添加迁移 删除数据库 获取 DbContext 脚手架-DbContext 脚本迁移 更新数据库

        问候 魔方

        【讨论】:

        • 您能否更详细地解释实施此解决方案所需的步骤?这个答案是如此简短,以至于它有被标记为删除的风险。你可以阅读更多here
        【解决方案6】:

        确保已安装 Microsoft.EntityFrameworkCore.Tools 软件包。如果不是,则从 NuGet 添加它,或者只需在包管理器控制台中键入以下内容:

        Install-Package Microsoft.EntityFrameworkCore.Tools
        

        安装上述软件包对我有用。

        【讨论】:

          【解决方案7】:

          从以下链接下载最新的 .net Core 2.0,它将解决您的问题: https://www.microsoft.com/net/core#windowscmd

          【讨论】:

          • 听起来太简单了,但这也为我解决了问题。我在家里开始了一个项目,我安装了 .Net core 2.2,当我在办公室打开该项目并尝试在此处进行添加迁移时出现此错误。安装了 .Net Core 2.2,重启了 VS,一切都很好。
          【解决方案8】:

          我重新安装了 Microsoft.EntityFrameworkCore.Tools 包,问题得到了解决。

          【讨论】:

            【解决方案9】:

            它对我有用。

            1. 关闭所有 VIsual Studio 实例。
            2. 打开VS。
            3. 打开包管理器控制台,让它初始化。
            4. 现在打开项目并尝试添加迁移。

            【讨论】:

              【解决方案10】:

              对我来说,我必须从

              复制文件夹microsoft.entityframeworkcore.tools

              C:\Program Files\dotnet\sdk\NuGetFallbackFolder

              C:\Users\<user>\.nuget\packages

              【讨论】:

              • 感谢您的分享——这对我也有效。
              【解决方案11】:

              您必须将此添加到您的 CSPROJ 文件中。这很可能会在 Core 2.0 发布时得到解决。这源于一个问题,由于版本要求,您无法使用 NUGET 工具安装此包 Microsoft.EntityFrameworkCore.Tools.DotNet。

              然后在项目目录中使用 CMD/PowerTools 可以发出以下命令:

              dotnet ef 迁移添加 InitialCreate

              dotnet ef 数据库更新

              <ItemGroup>
                  <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.1" />
              </ItemGroup>
              

              【讨论】:

                【解决方案12】:

                我在使用 EF6.3.0.NET MVC 5 项目中遇到了 VS2019 Enterprise 问题。我把头发拉出来,压碎了一段时间。我正在尝试一切。无奈之下,这就是我所做的最终奏效的方法,FWIW。

                1. 打开VS2019
                2. 让它在加载时完全完成所有后台进程(下 左上角动画图标)
                3. 关闭包管理器控制台
                4. 右键单击项目,选择“管理 NuGet 包”
                5. 选中“包括预发布”
                6. 选择“浏览”选项卡将 EntityFramework 更新到 V6.4.0-preview2-19525-03
                7. 关闭 VS2019 打开 VS2019 从菜单中选择: 工具 > Nuget 包管理器 > 包管理器控制台打开 PM 控制台
                8. 此时,add-migration "MyReferencePoint" 终于成功了!

                希望这对某人有所帮助。

                【讨论】:

                  【解决方案13】:

                  我们在“添加迁移”时遇到同样的错误,我尝试了一种解决方案,即使用以下步骤更新包管理器

                  1. 在 Visual Studio 中,从“工具”菜单中选择“扩展和更新”选项。

                  2. 在出现的对话框中,从左侧的树中展开“更新”节点。

                  3. 从树中选择“Visual Studio Gallery”选项。
                  4. 最后,在对话框右侧的更新列表中查找包管理器更新,然后单击旁边的“更新”按钮。

                  大约 5 - 10 MB 更新,更新完成后尝试 Get-Help Add-Migration

                  【讨论】:

                    猜你喜欢
                    • 2016-11-05
                    • 2016-05-10
                    • 2023-03-28
                    • 1970-01-01
                    • 2020-02-14
                    • 2020-03-03
                    • 1970-01-01
                    • 2021-12-14
                    • 1970-01-01
                    相关资源
                    最近更新 更多