[C#] .NET Core 3에서 dotnet ef를 찾을 수 없음

초기 마이그레이션을 만들기 위해 문서 를 따르고 있습니다. 을 실행 dotnet하면 PATH가 올바르게 작동한다는 의미의 도움말 섹션이 나타납니다.

그런 다음 콘솔 창의 문서에서 아래 명령을 실행하려고합니다.

dotnet ef migrations add InitialCreate  

다음과 같은 오류가 발생합니다.

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.
  • 명령을 복사 한 이후 첫 번째 항목을 제외했습니다.
  • 패키지 Microsoft.EntityFrameworkCore.SqlServer 가 설치 되었으므로 두 번째 항목을 제외했습니다 .
  • dotnet을 호출 할 때 도움말 섹션을 얻었으므로 세 번째 항목을 제외했습니다 .

나는 인터넷 검색 문제를 겪고 있지만 버전이 새롭기 때문에 앞으로 할 일이 많지 않으며 이전 버전과 비슷한 문제로 익사합니다.

명시 적으로 추가 해야하는 경우를 대비 하여 Microsoft.EntityFrameworkCore 를 강제로 설치하려고했습니다 . 선택해야 할 최신 버전이 2.2.6이고 다운 그레이드는 끝이 없다는 오류 메시지가 표시됩니다. 시스템에 이미있는 SQL 패키지와 호환되는 버전을 설치하는 방법을 잘 모르겠습니다 (그리고이 문제를 해결하는 올바른 방법인지는 확실하지 않습니다).

탐지 된 패키지 다운 그레이드 : 3.0.0-preview6.19304.10에서 2.2.6으로 Microsoft.EntityFrameworkCore. 다른 버전을 선택하려면 프로젝트에서 직접 패키지를 참조하십시오.
웹->
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)
웹-> Microsoft. EntityFrameworkCore (> = 2.2.6)



답변

이 도구는 더 이상 기본 제공되지 않으며 명시적인 설치가 필요하다는 ASP.NET Core 3 Preview 4 발표 를 참조하십시오 .

dotnet ef 도구는 더 이상 .NET Core SDK의 일부가 아닙니다.

이 변경 dotnet ef으로 전역 또는 로컬 도구로 설치할 수있는 일반 .NET CLI 도구로 제공 할 수 있습니다. 예를 들어, 마이그레이션 또는 스캐 폴드 a를 관리 하려면 다음 명령을 입력하여 전역 도구로 DbContext설치 dotnet ef하십시오.

dotnet tool install --global dotnet-ef

특정 버전의 도구를 설치하려면 다음 명령을 사용하십시오.

dotnet tool install --global dotnet-ef --version 3.1.4

변경 이유는 문서에 설명되어 있습니다 .

이 변경을 통해 dotnet efEF Core 3.0도 항상 NuGet 패키지로 배포된다는 사실과 일치하여 NuGet에서 일반 .NET CLI 도구로 배포하고 업데이트 할 수 있습니다 .

또한 다음 NuGet 패키지를 프로젝트에 추가해야 할 수도 있습니다.


답변

편집 : 배포에 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


답변

전역 도구는 기본 디렉토리 또는 특정 위치에 설치할 수 있습니다. 기본 디렉토리는 다음과 같습니다.

  • 리눅스 / macOS —> $ HOME / .dotnet / tools

  • Windows —> % USERPROFILE % \. dotnet \ tools

글로벌 도구를 실행하려는 경우 시스템의 PATH 환경 변수에 글로벌 도구를 설치 한 경로가 있고 실행 파일이 해당 경로에 있는지 확인하십시오.

.NET Core 도구 사용 문제 해결


답변

PowerShell 또는 명령 프롬프트를 관리자 권한으로 실행하고 아래 명령을 실행하십시오.

dotnet 도구 설치 –global dotnet-ef-버전 3.1.3


답변

나는 같은 문제가 있었다. 내 PC의 모든 버전을 제거한 다음 dotnet을 다시 설치했습니다.


답변

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"


답변

나를 위해 Visual Studio를 닫았다가 다시 열면 문제가 해결되었습니다.