在發佈時應用EF遷移僅適用於某些Web項目

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

我有幾個使用Asp.Net Core 1.0和Entity Framework Core 1.1.0的項目

我有一個代碼優先遷移方法,我通過Visual Studio 2015發佈到Azure。

我以前在Azure Sql Server中應用遷移的方法是在發布上啟用一個複選框:“實體框架遷移 - 在發佈時應用此遷移”,我在其中輸入連接字符串。

我更新了幾個軟件包,現在對於我的一個項目,我沒有看到這個選項在發佈時再應用遷移。我可以看到它試圖發現數據上下文,但它沒有找到任何東西 (雖然它在同一個項目中...)

見下文:

  • 我可以在發佈時在Azure上應用遷移的項目: 應用可用的遷移

  • 在發佈時在Azure上應用遷移的選項的項目已消失: 應用不可用的遷移

我懷疑它與項目的某些依賴版本有關,而不是與我的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" />


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因