為類庫運行dotnet ef遷移會產生錯誤MSB4006

entity-framework-core

我有一個針對.NET Framework 4.6.2的ASP.NET核心Web應用程序(.NET Framework)項目。

我已將Entity Framework引入Web項目並已設置並運行

dotnet ef migrations add Initial

來自web項目目錄。遷移已創建,一切都很好。

我想重構代碼,以便我的實體和數據庫上下文在類庫中。所以我創建了一個單獨的類庫(.NET Framework)項目,該項目也針對.NET Framework 4.6.2。

仍然從我運行的Web項目目錄

dotnet ef migrations add Initial --startup-project . --project ..\MigrationTest.Entities

其中MigrationTest.Entities是我的類庫。

這次我得到:

C:\ Projects \ Experiments \ MigrationTestNoIdentity \ MigrationTest.Entities \ obj \ MigrationTest.Entities.csproj.EntityFrameworkCore.targets(4,5):錯誤MSB4006:目標依賴關係圖中存在循環依賴關係,涉及目標“GetEFProjectMetadata”。 [C:\ Projects \ Experiments \ MigrationTestNoIdentity \ MigrationTest.Entities \ MigrationTest.Entities.csproj]無法檢索項目元數據。確保它是基於MSBuild的.NET Core項目。如果您使用的是自定義BaseIntermediateOutputPath或MSBuildProjectExtensionsPath值,請使用--msbuildprojectextensionspath選項。

它不是.NET Core項目,所以我嘗試創建一個.NET Core項目。運行遷移命令然後給出:

C:\ Program Files \ dotnet \ sdk \ 1.0.3 \ Sdks \ Microsoft.NET.Sdk \ build \ Microsoft.NET.Sdk.Common.targets(73,5):錯誤:項目'C:\ Projects \ Experiments \ MigrationTestNoIdentity \ MigrationTest.Entities.Core \ MigrationTest.Entities.Core.csproj'目標'.NETCoreApp,版本= v1.1'。它不能被針對“.NETFramework,Version = v4.6.2”的項目引用。 [C:\ Projects \ Experiments \ MigrationTestNoIdentity \ MigrationTest.Entities.Core \ MigrationTest.Entities.Core.csproj] C:\ Program Files \ dotnet \ sdk \ 1.0.3 \ Sdks \ Microsoft.NET.Sdk \ build \ Microsoft。 NET.Sdk.targets(92,5):錯誤:找不到'C:\ Projects \ Experiments \ MigrationTestNoIdentity \ MigrationTest.Entities.Core \ MigrationTest.Entities.Core.csproj'的項目信息。這可能表示缺少項目參考。 [C:\項目\實驗\ MigrationTestNoIdentity \ MigrationTest.Web \ MigrationTest.Web.csproj]

當然,.NET項目不能引用Core項目。

我正在嘗試做一個支持的場景嗎?我的命令行使用有問題嗎?別的什麼?

熱門答案

值得檢查以確保安裝了EF Tools軟件包。

在Visual Studio中打開Package Manager控制台並執行:

Install-Package Microsoft.EntityFrameworkCore.Tools

然後再次嘗試你的dotnet ef <commands>



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow