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 的,所以有人可以指导我如何让这个命令最终起作用吗?以下是我已经尝试过的一些方法:
- 擦除软件包并重新安装它们
- 运行宁
dotnet restore
- 显式添加
Microsoft.EntityFrameworkCore.Design
包
- 显式添加
Microsoft.EntityFrameworkCore.Tools
包
- 明确重新安装
Microsoft.EntityFrameworkCore
- 为 Mac
重新启动 VS
- 重新启动Mac本身
想通了。当我为 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
对于切换到 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
我使用 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 的,所以有人可以指导我如何让这个命令最终起作用吗?以下是我已经尝试过的一些方法:
- 擦除软件包并重新安装它们
- 运行宁
dotnet restore
- 显式添加
Microsoft.EntityFrameworkCore.Design
包 - 显式添加
Microsoft.EntityFrameworkCore.Tools
包 - 明确重新安装
Microsoft.EntityFrameworkCore
- 为 Mac 重新启动 VS
- 重新启动Mac本身
想通了。当我为 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
对于切换到 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