visual-studio-2015 - 在发布时应用 EF 迁移仅适用于某些 Web 项目

标签 visual-studio-2015 asp.net-core publish entity-framework-core entity-framework-migrations

我有几个项目使用 Asp.Net Core 1.0 和 Entity Framework Core 1.1.0

我有一个代码优先迁移方法,我通过 Visual Studio 2015 发布到 Azure。

我过去在 Azure Sql Server 中应用迁移的方式是在发布时启用一个复选框:“ Entity Framework 迁移 - 在发布时应用此迁移”,我在其中输入了一个连接字符串。

我更新了几个包,现在对于我的一个项目,我看不到这个选项来在发布时应用迁移。我可以看到 它试图发现数据上下文,但没有找到任何东西 (虽然它在同一个项目中..)

见下文:

  • 发布时可以在 Azure 上应用迁移的项目:
    apply migrations available
  • 发布时在 Azure 上应用迁移的选项消失的项目:
    apply migrations not available

  • 我怀疑它与项目的某些依赖版本有关,而不是与我的 IDE 无关,因为我对两个项目使用相同的 Visual Studio(2015 更新 3)。

    我找不到这方面的信息。什么依赖允许这个选项?如果我发现哪个版本有问题,那么剩下的问题是如何在发布时应用迁移?

    两个项目在 Web 项目中都有迁移,并且两个项目都使用 "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.0"
    更新 1 : 我设法找到了这其中涉及的内容。看来,如果我使用这些依赖项:
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.EntityFrameworkCore.Design": "1.0.0-preview2-final"
    

    Visual Studio 能够找到数据上下文并提供在发布时应用迁移的选项。但是,如果我使用这些依赖项的较新版本,例如:
    "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
    "Microsoft.EntityFrameworkCore.Design": "1.1.0"
    

    然后应用迁移的选项消失了,VS 在发布时找不到任何数据上下文。

    我需要了解迁移事物和 Asp.Net Core 的最新状态。

    最佳答案

    在创建空的 ASP.NET Core Web API 项目并添加迁移后,我在 Visual Studio 2017 中偶然发现了一个非常相似的问题(发布无法在项目中查找要发布的数据上下文)。

    为了使它工作,我在 .csproj 文件中包含了以下几行:

    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
    
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" />
    

    关于visual-studio-2015 - 在发布时应用 EF 迁移仅适用于某些 Web 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41291117/

    相关文章:

    visual-studio-2015 - VS 2015 中的内部诊断中心异常。DataWareHouseRestWebHost 错误

    c# - 在许多 Activity 中使用静态类?

    C++ - 奇怪的函数返回值

    c# - 如何获取 blazor 中单选按钮的值?

    asp.net-core - Asp.net Core 中的 @Html.EnumDropDownListFor

    entity-framework-6 - VS2015 从数据库更新模型 - 意外异常

    asp.net-core - 未找到 Swashbuckle.AspNetCore SwaggerOperation 属性

    html - 当文件夹名称包含时间戳时,Jenkins HTML 发布者插件

    repository - Gradle的最新快照

    c# - 在 Visual Studio 中发布程序