C# 无法创建迁移,因为无法识别EntityFramework.Design包

C# 无法创建迁移,因为无法识别EntityFramework.Design包,c#,.net-core,entity-framework-core,.net-core-3.0,ef-core-3.0,C#,.net Core,Entity Framework Core,.net Core 3.0,Ef Core 3.0,我安装了EntityFrameworkCore Install-Package Microsoft.EntityFrameworkCore.Design -Version 3.0.0-preview6.19304.10 它似乎已安装,我可以在VS中看到以下内容 但是,当我尝试使用 dotnet ef migrations add Init 我等待了相当长的时间,随后出现了下面的错误 您的启动项目“Web”未引用Microsoft.EntityFrameworkCore.Design。实体框架

我安装了EntityFrameworkCore

Install-Package Microsoft.EntityFrameworkCore.Design -Version 3.0.0-preview6.19304.10
它似乎已安装,我可以在VS中看到以下内容

但是,当我尝试使用

dotnet ef migrations add Init
我等待了相当长的时间,随后出现了下面的错误


您的启动项目“Web”未引用Microsoft.EntityFrameworkCore.Design。实体框架核心工具需要这个包才能工作。请确保您的启动项目正确,安装软件包,然后重试

当我检查Web.proj文件时,我看到了以下部分

<ItemGroup>
  <PackageReference Include="Microsoft.AspNetCore.SpaServices.Extensions" Version="3.0.0-preview6.19307.2" />
  <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.0.0-preview6.19304.10">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
  </PackageReference>
  <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0-preview6.19304.10" />
  <PackageReference Include="Swashbuckle.AspNetCore" Version="5.0.0-rc2" />
  <PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="5.0.0-rc2" />
</ItemGroup>

如何确保计算机看到该软件包?

您需要参考其他软件包,以便迁移正常工作, 加:


将其添加到具有数据上下文的项目中。

该项目中还有其他项目吗solution@CodeNameJack不。起初我有一些,但意识到复杂性太高了,于是就把它们去掉了。你是否认为VS不知何故绊倒并保留了其他参考资料?我检查了SLN文件,没有注意到任何特殊情况。有时我们会尝试在错误的项目上应用迁移。尤其是当您在Web以外的项目中进行迁移时。@CodeNameJack啊,是的。这个错误很常见,是的。我第一次测试的时候就想到了。伟大的头脑有着相似的想法,对吗?但是没有,只有一个项目,包管理器窗口中的下拉列表显示Web,我也导航到该目录,PWD显示../Web,我通常指定-project Web。不过第一枪打得不错那么,也许这段对话能帮助下一个来这里的人我对您添加Microsoft.EntityFrameworkCore.SqlServer的建议感到困惑。你是说我应该复制PROJ文件中的行吗?它已经列在项目组中,从底部算起,排在第三位,而且解决方案中只有一个项目,所以上下文的定义就在这里,从DbContext继承而来。还是你错过了那一行,我应该只添加工具?这些包肯定应该包括在一个共同的,单一的安装风格的东西。。。您是否参考了MSDN或其他文件中要添加的内容的完整列表?我还没有找到这样的东西。Microsoft.EntityFrameworkCore.SqlServer,很可能我没注意到你已经有了它。这些东西真的,真的应该捆绑在一起,这样你就不必思考、记住和沮丧了。NET的优点和优势在于易于使用。微软给我的工具可以帮我做一些事情,我可以专注于酷、有趣、复杂的事情。这就是2001年他们发布.NET0.9时达成的协议,我认为效果相当不错。不要对我这样的老人发疯,现在…:我想我们可以原谅她。dotnetcore变化如此之快,以至于他们可能也不知道该捆绑什么。他们已经有了一个核心包。但是,这些文档必须改进。关于EFCore、Identity、Startup.cs的许多事情都不是直观的。我看到你至少有招摇过市,这本身对很多人来说是很难设置的。
Microsoft.EntityFrameworkCore.Tools