我有一个使用 .NET Core 3.0 的 ASP.NET Core 3.0 项目。我最近将VS 2019升级到16.4.1版本。
我使用 Visual Studio 中的 Web 发布在各种环境中部署应用程序,但由于 EF 迁移(尝试查找数据库上下文失败(,升级后失败了:
dotnet ef dbcontext --JSON failure
运行"dotnet tool restore"以使"dotnet-ef"命令可用。
我试图理解出了什么问题。
dotnet tool restore
找不到清单文件。有关搜索位置的列表,请指定 工具名称前的"-d"选项。未恢复任何工具。
dotnet tool install --global dotnet-ef
工具"dotnet-ef"已安装。
dotnet tool list
包 ID 版本命令清单
(此列表中没有项目(
dotnet-ef --version
实体框架核心 .NET 命令行工具 3.1.0
dotnet --version
3.1.100
我是否需要升级才能将所有内容升级到 3.1?如果可能的话,我想推迟这个(我必须在多个环境中这样做,并且稍后会安排
(。注意:我也有 Visual Studio 2017 和实体框架迁移上下文在配置发布配置文件时正确发现。
问题:如何解决由于dotnet ef dbcontext --json失败而无法在Visual Studio 2019中列出实体框架迁移?
我遇到了同样的问题(在Visual Studio 2019更新后(,在我的电脑上有这个问题,但在另一台电脑上没有。文件都是相等的(通过git检查(,VS2019在某处缓存一些东西,这很糟糕。
1 检查默认连接字符串是否正常。
2 检查是否安装了 dotnet ef。在核心 3.1 中,您必须安装:dotnet tool install -g dotnet-ef
3 关闭VS,删除文件夹<yourproject>/Properties
(如果需要,请备份(,打开VS,清理解决方案并再次导入发布文件。
运行
dotnet tool uninstall --global dotnet-ef
跑
dotnet tool install --global dotnet-ef
对于 Linux 和 macOS,请在 shell 的配置中添加一行:
bash/zsh: (
nano ./zshrc
(export PATH="$PATH:$HOME/.dotnet/tools/"
csh/tcsh:
set path = ($path $HOME/.dotnet/tools/)
来源: https://stackoverflow.com/a/56876020/9324707
我遇到了同样的问题,但不知道我必须cd到"服务器"项目中然后运行dotnet tool restore
。这为我解决了这个问题。
dotnet ef 工具不再是 .NET Core SDK 的一部分 此更改允许我们将 dotnet ef 作为常规 .NET CLI 工具发布,该工具可以作为全局或本地工具安装。例如,为了能够管理迁移或搭建 DbContext 基架,请安装 dotnet ef 作为全局工具,键入以下命令:
$ dotnet工具安装 --global dotnet-ef --version 3.0.0-preview4.19216.3 有关详细信息,请参阅此中断性更改的详细信息。
我想我解决了。我缺乏 Microsoft.EntityFrameworkCore.Design。
- 使用 NuGet Microsoft.EntityFrameworkCore.Design 3.0.0 安装 的
冉
dotnet tool restore
这次成功了点网工具还原
工具"dotnet-ef"(版本"3.1.0"(已恢复。可用命令: dotnet-ef