VS Mac 更新后 dotnet ef 命令不工作

dotnet ef command not working after VS for Mac update

我使用 VS Mac 有一段时间了,现在使用 EF Core 2.2,一切正常。今天我更新了 Mac 的 VS,因为它真的过时了,更新后我不能再 运行 dotnet ef 命令:

Could not execute because the specified command or file was not found.
Possible reasons for this include:
* You misspelled a built-in dotnet command.
* You intended to execute a .NET Core program, but dotnet-ef does not exist.
* You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH.

请注意,这是 .NET Core 2.2 和 EF Core 2.2,而不是 3.0。我在网上阅读的所有内容都是特定于 3.0 的,所以有人可以指导我如何让这个命令最终起作用吗?以下是我已经尝试过的一些方法:

想通了。当我为 Mac 更新 VS 时,它安装了 .NETCore SDK v3.0,所以每次我 运行 dotnet 命令时,它都使用版本 3 可执行文件。删除该 SDK 版本后(按照这些说明 https://docs.microsoft.com/en-us/dotnet/core/versions/remove-runtime-sdk-versions?tabs=macos#uninstalling-net-core),它现在为项目使用正确的版本并且 dotnet ef 命令再次工作

也有同样的问题,您不必卸载 v3.0。最终发现 dotnet ef 不再是 .netcore SDK 的一部分。

您需要为您想要的特定版本安装 ef 工具(在我的例子中是 2.2)。 运行 在终端上执行以下命令:

dotnet tool install --global --version 2.2 dotnet-ef

注意我指定的是全局,你也可以指定本地。

你应该得到一个输出,其中包含一些关于如何将它添加到你的个人资料的信息,最后 运行:

zsh -l

并导出到路径:

export PATH="$PATH:/Users/username/.dotnet/tools"

更多信息:

https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/dotnet

Breaking changes in dotnet-ef

对于切换到 zsh 后遇到此问题的用户(例如升级到 macOS Catalina 后):zsh 无法识别全局安装工具的默认路径,现在需要在您的个人资料中引用相关路径 (.zshrc)。 这可以通过添加以下行来完成:

# Add .NET Core SDK global tools/packages
export PATH=$HOME/.dotnet/tools:$PATH"

在以下位置查看与 bash 不同的原因的更多背景信息:https://github.com/dotnet/cli/issues/9321