当我需要使用“ add-migrations”命令时,我试图将vscode用作IDE 我遇到了使用“ dotnet ef migrations add name”命令的情况,但是当我尝试使用此命令时出现错误:
dotnet : Could not execute because the specified command or file was not found.
At line:1 char:1
+ dotnet ef
+ ~~~~~~~~~
+ CategoryInfo : NotSpecified: (Could not execu... was not found.:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
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 r
un a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH.
我尝试了几种解决方案,但都没有成功,有没有解决的办法?
我正在使用dotnet core 2.2
答案 0 :(得分:0)
更新!
现在您可以使用该工具了,我们可以告诉它上下文的位置。
您提到您有用于API和数据的单独项目,所以我们将其命名为:
假设您具有以下结构:
Root:
├───Api:
| Api.csproj
├───Data:
| Data.csproj
| YourDbContext.cs
Api和Data项目是分开的,您有一个称为YourDbContext的EF DbContext。
这是您需要做的。 导航到Api目录。
> cd Api
> dotnet ef migrations add Initial --project ..\Data\Data.csproj --context YourDbContext
正在发生的事情: 我们正在Api主项目中运行该工具,并使用--project标记Data项目。 我还添加了--context参数,以防万一,您知道如何指向其中之一。
请继续,尝试让我知道它的工作原理。
初始方法
好的,我使用3.0.100
的{{1}}版本从项目目录运行命令:
查看输出:
dotnet sdk
这与您获得的输出完全相同,所以我猜您以为您使用的是2.2版,但也许不是。
您需要从解决方案/项目目录的上方运行该命令,并确认SDK不是3.x。
例如,如果您在项目根目录中使用以下内容创建> 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.
文件,也可以将sdk“强制”为2.2.402:
global.json
通过这种方式,无论您在系统中安装了什么sdk,dotnet都将使用2.2.402版本(或您在文件中设置的版本)。
希望这会有所帮助!