我正在追踪the docs以便进行初始迁移。当我执行dotnet
时,我得到了帮助部分,这意味着PATH可以正常工作。
然后我尝试从控制台窗口的文档中执行以下命令:
dotnet ef迁移添加InitialCreate
我收到以下错误:
由于找不到指定的命令或文件而无法执行。
可能的原因包括:
*您拼错了内置dotnet命令。
*您打算执行.NET Core程序,但dotnet-ef不存在。
*您打算运行一个全局工具,但是在PATH上找不到具有该名称的dotnet前缀可执行文件。
我正在搜索该问题,但是由于该版本是新版本,因此没有太多工作要做,并且/或者它淹没了较早版本中的类似问题。
我试图强行安装 Microsoft.EntityFrameworkCore ,以防万一需要显式添加。我遇到错误消息,告诉我要选择的最新版本是2.2.6,降级是不行的。我不确定如何安装与我的系统上已有的SQL软件包兼容的版本(甚至无法确定这是否是解决此问题的正确方法)。
检测到的包降级:Microsoft.EntityFrameworkCore从3.0.0-preview6.19304.10降到2.2.6。直接从项目中引用该软件包以选择其他版本。
网页->
Microsoft.EntityFrameworkCore.SqlServer 3.0.0-preview6.19304.10->
Microsoft.EntityFrameworkCore.Relational 3.0.0-preview6.19304.10->
Microsoft.EntityFrameworkCore(> = 3.0.0-preview6.19304.10)
Web-> Microsoft.EntityFrameworkCore(> = 2.2.6)
答案 0 :(得分:15)
编辑:如果您正在使用Dockerfile进行部署,这些是解决此问题所需采取的步骤。
更改您的Dockerfile以包括以下内容:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
ENV PATH $PATH:/root/.dotnet/tools
RUN dotnet tool install -g dotnet-ef --version 3.1.1
还可以将您的dotnet ef
命令更改为dotnet-ef
答案 1 :(得分:5)
全局工具可以安装在默认目录中或 具体位置。默认目录为:
Linux / macOS ---> $ HOME / .dotnet / tools
Windows --->%USERPROFILE%\。dotnet \ tools
如果您尝试运行全局工具,请检查计算机上的PATH环境变量是否包含安装全局工具的路径,以及可执行文件是否在该路径中。
答案 2 :(得分:4)
以管理员身份运行PowerShell或命令提示符并在命令下方运行。
dotnet工具安装--global dotnet-ef --version 3.1.3
答案 3 :(得分:4)
我通过使用以下命令在本地安装 dotnet-f 工具 解决了这个问题。
如果您要设置此存储库
dotnet new tool-manifest
dotnet tool install --local dotnet-ef --version 5.0.6
然后使用 dotnet dotnet-ef 而不是 dotnet-ef。
答案 4 :(得分:2)
请参阅announcement中的ASP.NET Core 3 Preview 4,它说明该工具已不再内置并且需要显式安装:
dotnet ef工具不再是.NET Core SDK的一部分
此更改使我们可以将
dotnet ef
作为常规.NET CLI工具发布,可以将其安装为全局或本地工具。例如,为了能够管理DbContext
的迁移或搭建支架,请安装dotnet ef
作为全局工具,键入以下命令:dotnet tool install -g dotnet-ef --version 3.0.0-*
还需要安装其他软件包。这些链接指向目前的最新版本,但随着时间的推移可能会过时。
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Design
Install-Package Microsoft.EntityFrameworkCore.Tools
答案 5 :(得分:2)
原因是 - dotnet ef
工具不再是 ASP.NET Core 3.0 中 .NET Core SDK 的一部分。
解决方案:将 dotnet ef
安装为全局工具
步骤:
对于最新版本:
dotnet tool install --global dotnet-ef
对于特定版本:
dotnet tool install --global dotnet-ef --version <<version_number>>
答案 6 :(得分:1)
我在 Ubuntu 上使用具有 sudo 升级权限的 Ansible 安装了 dotnet-ef 工具后遇到了这个问题。我必须为 Playbook 任务添加 become: no,然后 dotnet-ef 工具对当前用户可用。
- name: install dotnet tool dotnet-ef
command: dotnet tool install --global dotnet-ef --version {{dotnetef_version}}
become: no
答案 7 :(得分:0)
我有同样的问题。我解决了,卸载了PC中的所有de版本,然后重新安装了dotnet。
答案 8 :(得分:0)
如果您在Linux上使用快照包dotnet-sdk,可以通过更新〜.bashrc /等来解决,如下所示:
#!/bin/bash
export DOTNET_ROOT=/snap/dotnet-sdk/current
export MSBuildSDKsPath=$DOTNET_ROOT/sdk/$(${DOTNET_ROOT}/dotnet --version)/Sdks
export PATH="${PATH}:${DOTNET_ROOT}"
export PATH="$PATH:$HOME/.dotnet/tools"
答案 9 :(得分:0)
对我来说,在我关闭Visual Studio并再次打开它之后,问题已解决
答案 10 :(得分:0)
适用于在MinGW MSYS上使用.NET Core CLI的每个人。 使用
安装后dotnet tool install --global dotnet-ef
将此行添加到bashrc文件c:\ msys64 \ home \ username \ .bashrc(位置取决于您的设置)
export PATH=$PATH:/c/Users/username/.dotnet/tools
答案 11 :(得分:0)
我按照以下步骤操作,对我来说效果很好:
添加来源:
dotnet nuget add source --name nuget.org https://api.nuget.org/v3/index.json
运行安装命令行:
dotnet tool install --global dotnet-ef --version 5.0.6
答案 12 :(得分:0)
有时可能由于系统内的不同用户而发生。
因此要解决此问题,您可以在解决方案中本地安装 dotnet-ef,而不是全局添加。
本地安装步骤。
通过以下方式创建本地清单文件
dotnet new tool-manifest
转到 config
文件夹:
cd .\.config
通过以下方式安装工具
dotnet tool install dotnet-ef --version versionNumber
。它将成功安装,并且可以在项目中访问其命令。
答案 13 :(得分:0)
这适用于我在 Ubuntu 中的 Visual Studio 代码
dotnet tool install --global dotnet-ef
dotnet tool restore
之后所有的执行都完成了
dotnet tool run dotnet-ef
或
dotnet dotnet-ef