2017-10-17 131 views
0

我正在开发一个项目,首先使用asp.net核心,实体框架代码,我试图运行EF迁移作为发布步骤,我被建议使用迁移。 exe,但据我所知,ef asp.net核心不会生成migrate.exe文件。EF核心代码第一次部署 - VSTS管道 - hospolicy.dll

我正在发布步骤中使用以下命令。将ef核心项目的bin文件夹添加到生成的工件之后。

命令:

dotnet exec 
--runtimeconfig ./HOST.runtimeconfig.json 
--depsfile ./HOST.deps.json Microsoft.EntityFrameworkCore.Design.dll 
--assembly ./DB_CONTEXT_DLL.dll 
--startup-assembly ./HOST.dll --data-dir ./ 
--root-namespace DB_CONTEXT_NAMESPACE 
--verbose database update --context DB_CONTEXT_CLASS -e development 

命令一步失败,出现错误:遇到 致命错误。 'd:\ a \ r1 \ a {发布文件夹} \ drop \ EF \ bin \ release \ netcoreapp1.1 \'中找不到执行应用程序所需的库'hostpolicy.dll'。

我不知道什么是hostpolicy.dll以及如何生成它,因为它不是在bin文件夹中生成的EF核心项目

有什么建议?

+0

关于命令问题,我想知道它是VS2015还是VS 2017核心项目,您是否可以在本地计算机上运行该命令?您可以在OneDrive上共享详细的VSTS构建日志吗(将system.debug变量设置为true,然后队列构建并共享日志文件)? –

回答

0

您可以在部署过程中执行实体框架迁移。简单的步骤:

  1. 创建发布配置文件(如Web部署包,右击项目=>发布)
  2. 一般部署包通过的Visual Studio生成任务/p:DeployOnBuild=true /p:PublishProfile=[profilename];DesktopBuildPackageLocation="$(build.artifactstagingdirectory)\WebAppCoreEF.zip"参数
  3. 添加部署任务(如Azure应用程序服务部署)来部署此包(您可以在发布时执行此操作)