Project X 以框架“.NETStandard”为目标。 Entity Framework 程序包管理器控制台工具不支持此框架
Project X targets framework '.NETStandard'. The Entity Framework Package Manager Console Tools don't support this framework
我正在尝试在我的解决方案中创建一个 EF 6.4 迁移,它有 net472 项目和 netstandard 项目,但我收到以下错误:
Project 'ESP.Console' targets framework '.NETStandard'. The Entity Framework Package Manager Console Tools don't support this framework.
但是,'ESP.Console' 应用程序不以 .NETStandard 为目标,而是以 net472 为目标:
<PropertyGroup>
<TargetFramework>net472</TargetFramework>
<LangVersion>7.3</LangVersion>
<OutputType>Exe</OutputType>
</PropertyGroup>
我将 ESP.Console
控制台应用程序设置为我的启动项目,并将 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
所在的项目)同时针对 net472
和 netstandard2.1
,我更改了数据项目以删除 netstandard2.1
目标框架。 VS 中似乎存在一个错误,即 StartupProject 以 NetStandard 为目标,而不是说 Target 项目以 NetStandard 为目标。创建迁移后,我可以再次添加目标。
我将很快转向 .net 核心编译,因此在某个时候需要 netstandard 2.1 目标,所以我不确定届时我会做什么。我可能需要保留一个 net472 控制台应用程序以供将来使用,并在迁移完成后继续在我的数据项目中定位 net472,以便继续创建迁移。
我遇到了类似的问题。
我的问题是,我的启动项目以 netcoreapp3.1
为目标并使用了 Entity Framework 6 tools
。
当我切换到 EntityFrameworkCore tools
时它起作用了。
我正在尝试在我的解决方案中创建一个 EF 6.4 迁移,它有 net472 项目和 netstandard 项目,但我收到以下错误:
Project 'ESP.Console' targets framework '.NETStandard'. The Entity Framework Package Manager Console Tools don't support this framework.
但是,'ESP.Console' 应用程序不以 .NETStandard 为目标,而是以 net472 为目标:
<PropertyGroup>
<TargetFramework>net472</TargetFramework>
<LangVersion>7.3</LangVersion>
<OutputType>Exe</OutputType>
</PropertyGroup>
我将 ESP.Console
控制台应用程序设置为我的启动项目,并将 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
所在的项目)同时针对 net472
和 netstandard2.1
,我更改了数据项目以删除 netstandard2.1
目标框架。 VS 中似乎存在一个错误,即 StartupProject 以 NetStandard 为目标,而不是说 Target 项目以 NetStandard 为目标。创建迁移后,我可以再次添加目标。
我将很快转向 .net 核心编译,因此在某个时候需要 netstandard 2.1 目标,所以我不确定届时我会做什么。我可能需要保留一个 net472 控制台应用程序以供将来使用,并在迁移完成后继续在我的数据项目中定位 net472,以便继续创建迁移。
我遇到了类似的问题。
我的问题是,我的启动项目以 netcoreapp3.1
为目标并使用了 Entity Framework 6 tools
。
当我切换到 EntityFrameworkCore tools
时它起作用了。