簡體   English   中英

Project X 以框架“.NETStandard”為目標。 實體框架 Package 管理器控制台工具不支持此框架

[英]Project X targets framework '.NETStandard'. The Entity Framework Package Manager Console Tools don't support this framework

我正在嘗試在具有 net472 項目和 netstandard 項目的解決方案中創建 EF 6.4 遷移,但出現以下錯誤:

項目“ESP.Console”以框架“.NETStandard”為目標。 實體框架 Package 管理器控制台工具不支持此框架。

但是,“ESP.Console”應用程序不針對 .NETStandard,它針對的是 net472:

  <PropertyGroup>
    <TargetFramework>net472</TargetFramework>
    <LangVersion>7.3</LangVersion>
    <OutputType>Exe</OutputType>
  </PropertyGroup>

我將ESP.Console控制台應用程序設置為我的啟動項目,並在 Package 管理器控制台中將ESP.Data項目作為我的默認項目。

這是ESP.Data.csproj的設置:

  <PropertyGroup>
    <TargetFrameworks>netstandard2.1;net472</TargetFrameworks>
    <EmbeddedResourceUseDependentUponConvention>true</EmbeddedResourceUseDependentUponConvention>
  </PropertyGroup>

當我正在轉換解決方案中的其他應用程序以在 .net 內核上運行時,我需要它來針對 netstandard 和 net472。

為什么我會收到此錯誤? 是否有另一個命令,如dotnet ef可以用於我的 EF 6.4 項目?

我們已經在這個解決方案上使用了數百次 EF 遷移,但是自從我上次需要運行遷移以來,我們對解決方案進行了兩項重大更改 - 將所有 csproj 文件轉換為使用新格式(使用 PackageReference 等) 並在需要時將核心項目轉換為針對 .net 標准 2.0 或 2.1。 所以我認為這個問題與此有關。

嘗試將 ESP.Console 應用程序更改為作為netcoreapp3.1運行時會出現相同的錯誤。

我找到了解決問題的方法,盡管它有點混亂,因為我需要對 csproj 文件進行臨時更改才能使其運行。

就我而言, ESP.Data (包含我的DbContext的項目)同時針對net472netstandard2.1 ,我更改了 Data 項目以刪除netstandard2.1目標框架。 VS 中似乎有一個錯誤,它說 StartupProject 以 NetStandard 為目標,而不是說 Target 項目確實如此。 創建遷移后,我可以再次添加目標。

我將很快轉向 .net 核心編譯,因此在某些時候需要 netstandard 2.1 目標,所以我不確定當它到來時我會做什么。 我可能需要保留一個 net472 控制台應用程序以供將來使用,並在遷移完成后繼續在我的數據項目中定位 net472,以便繼續創建遷移。

我有一個類似的問題。
我的問題是,我的啟動項目以netcoreapp3.1為目標,並使用了Entity Framework 6 tools
當我切換到EntityFrameworkCore tools時,它起作用了。

可能是 Visual Studio 中的一個錯誤——即使我的項目使用 .NET Framework 4.8,在我將啟動項目更改為正確的項目后,我還是看到了這個錯誤。

嘗試了幾件事沒有運氣,但隨后關閉並重新打開 Visual Studio 解決了問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM