我正在尝试在具有net472项目和netstandard项目的解决方案中创建EF 6.4迁移,但出现以下错误:
项目“ ESP.Console”以框架“ .NETStandard”为目标。实体框架包管理器控制台工具不支持此框架。
但是,“ ESP.Console”应用程序不针对.NETStandard,而是针对net472:
<PropertyGroup>
<TargetFramework>net472</TargetFramework>
<LangVersion>7.3</LangVersion>
<OutputType>Exe</OutputType>
</PropertyGroup>
我将ESP.Console
控制台应用程序设置为我的启动项目,并且ESP.Data
在Package Manager控制台中将该项目作为默认项目。
这是设置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
(容纳my的项目DbContext
)同时针对net472
和netstandard2.1
,我更改了Data项目以删除netstandard2.1
目标框架。似乎VS中存在一个错误,即StartupProject是针对NetStandard而不是Target项目。创建迁移后,可以再次添加目标。
我将很快转向.net核心编译,因此在某个时候将需要该netstandard 2.1目标,因此我不确定在出现这种情况时会做什么。我可能需要保留一个net472控制台应用程序以备将来使用,并在完成迁移后继续在我的数据项目中定位net472以便继续创建迁移。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句