2017-10-17 87 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應用程序服務部署)來部署此包(您可以在發佈時執行此操作)