Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VSTS中完整.net项目中的Ef核心迁移_.net_Entity Framework_Entity Framework Core_Entity Framework Migrations_Azure Pipelines Release Pipeline - Fatal编程技术网

VSTS中完整.net项目中的Ef核心迁移

VSTS中完整.net项目中的Ef核心迁移,.net,entity-framework,entity-framework-core,entity-framework-migrations,azure-pipelines-release-pipeline,.net,Entity Framework,Entity Framework Core,Entity Framework Migrations,Azure Pipelines Release Pipeline,我已经创建了一个针对整个.net框架的.net核心web应用程序 我已经创建了一个类库(.net framework) 在这个dll中,我引用了ef核心并创建了一个上下文。 当我使用包管理器时,迁移工作正常 我目前面临的问题 我需要能够在VSTS部署期间使用迁移 我已经试过了 在VSTS中创建powershell部署脚本以调用dotnet ef命令。这不起作用,因为我无法在项目中安装Microsoft.EntityFrameworkCore.Tools.DotNet 我已尝试在my.csproj

我已经创建了一个针对整个.net框架的.net核心web应用程序

我已经创建了一个类库(.net framework) 在这个dll中,我引用了ef核心并创建了一个上下文。 当我使用包管理器时,迁移工作正常

我目前面临的问题 我需要能够在VSTS部署期间使用迁移

我已经试过了 在VSTS中创建powershell部署脚本以调用dotnet ef命令。这不起作用,因为我无法在项目中安装Microsoft.EntityFrameworkCore.Tools.DotNet

我已尝试在my.csproj中手动添加引用

但不幸的是,这并不能解决我的问题,只能产生这样的结果。
免责声明:我没有测试以下任何建议

其他人正在使用此解决方法:

ASP.NET Core的另一个解决方法是添加命令行参数(Program.cs),以允许从命令行执行.Database.Migrate()。然后,您可以使用此命令行参数添加在azure上执行powershell命令/脚本的VSTS部署任务


另一种方法可能是让CI将项目文件(*.csproj)放入工件中,然后在CD中执行dotnet还原。项目文件似乎是必要的,因为这是我能看到的唯一一种可以指导dotnet工具恢复内容的方法。

我意识到这是一个老问题,但对于在Azure DevOps(又名VSTS)中搜索处理EF迁移的最佳方法的任何人来说,我发现了以下内容

EF迁移构建源代码,这可能会有问题,因为您需要源代码,而发布管道没有构建管道所具有的所有相同功能

我的做法是:

  • 使用
    dotnet ef
    命令在生成中生成迁移脚本
  • 将脚本发布为构建的工件
  • 在发布管道中部署期间运行脚本

  • 查看完整的博客文章,了解更多详细信息。

    如果您将项目组更改为
    ,与本文中的设置类似,该怎么办?你能在一个驱动器中上传整个项目吗?@Marina MSFT我曾尝试添加建议的更改,但现在我只得到两个文件,如“错误参考”图像所示。我仍然无法使用powershell中的“dotnet ef”,并且正在获取“找不到可执行的匹配命令”dotnet ef“您上载项目方便吗?或者您可以上载具有相同错误消息的演示。经过无数个小时的搜索,我决定使用context.Database.Migrate()