패키지 관리자 콘솔 활성화-마이그레이션 CommandNotFoundException 특정 VS 프로젝트에서만


122

새 프로젝트에서 'Enable-Migrations'명령을 실행하려고했는데 메시지가 나타납니다.

PM> Enable-Migrations
The term 'Enable-Migrations' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verif
y that the path is correct and try again.
At line:1 char:18
+ Enable-Migrations <<<< 
    + CategoryInfo          : ObjectNotFound: (Enable-Migrations:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

그러나 다른 모든 프로젝트에서는 명령이 잘 실행됩니다.

왜 이런 일이 발생합니까?

BTW, VS2010 Professional SP1을 사용하고 있습니다.

편집 : commmand : Install-Package EntityFramework -IncludePrerelease로 다시 설치했는데 문제가 사라졌습니다.


2
안녕하세요, 답변으로 솔루션을 추가하고 수락 된 것으로 표시하세요 (2 일 후에 수행 가능). 그러면 답변되지 않은 질문으로 표시되지 않습니다.
Gert Arnold

1
이 똑같은 문제가 있습니다. 그러나이 스레드의 어떤 것도 작동하지 않는 것 같습니다. 전체 Visual Studio를 다시 설치 했습니까? 아니면 단순히 해당 명령을 실행 했습니까?
ObedMarsh 2014

나는 단순히 명령을 실행했다 ...
Eduardo Brites 2014

2
슬프게도이 명령의 결과는 " 'EntityFramework 6.1.0'이 이미 설치되어 있습니다." 그리고 여전히 유효한 명령으로 추가 마이그레이션 또는 마이그레이션 활성화가 없습니다.
미르

Install-Package : 'EntityFramework'패키지를 찾을 수 없습니다. 난 당신의 솔루션을하려고 할 때
기브 이하 브

답변:


85

Visual Studio를 다시 시작하는 것만으로도 효과적이었습니다. 패키지 등을 설치할 필요가 없습니다.


8
다시 시작 VS 또한 나를 위해 일, 기쁜 나는 EntityFramework reinstal하기 전에이 시도
SM3RKY

5
Visual Studio 2015에서 다시 시작되었습니다. 패키지를 설치할 필요가 없습니다.
조나스

5
참고-패키지를 설치해야 할 때마다이 문제가 발생합니다 (예 : 새로운 repo pull). PM이 새 패키지로 올바르게 초기화되기 전에 VS를 다시 시작해야하는 것 같습니다 (VS Community 2015 업데이트 1)
Jono

2
신선한 repo pull도이 문제를 일으켰습니다. 다시 시작하여 수정했습니다. (VS Enterprise 2015 업데이트 2).
Mike Rouse 2016 년

84

commmand : Install-Package EntityFramework -IncludePrerelease로 다시 설치했는데 문제가 사라졌습니다.


13
내 솔루션을 구축 한 다음 VS 2013을 닫았다가 다시 열었습니다. 작동했습니다.
Luke

참고는 EntityFramework단지 .NET 프레임 워크 4.0 및 4.5을 지원합니다. 따라서 .net framework 4.6 이상을 사용하는 경우 작동하지 않습니다.
Tân

1
@ TânNguyễn-그게 뭔데? 내 EntityFramework 6.1.3 NuGet이 내 4.6.x 프로젝트에서 잘 작동합니다
bkwdesign 2017 년

다시 시작은 나를 위해하지 않았지만 이것은했습니다.
robbpriestley

29

이 문제는 Entity Framework가 설치되어 있지 않기 때문에 발생합니다. 아래 명령을 사용하여 Entity Framework를 설치하십시오.

Install-Package EntityFramework -IncludePrerelease

설치가 완료되면 패키지 관리자 콘솔 기본 프로젝트 드롭 다운에서 프로젝트를 선택합니다.

프로젝트의 하나 이상의 클래스가 데이터 컨텍스트에서 상속되는지 확인하고 그렇지 않으면 아래 클래스를 사용합니다.

public class MyDbContext : DbContext
    {
        public MyDbContext()
        {
        }
    }

이렇게하지 않으면 또 다른 오류가 발생합니다.

No context type was found in the assembly

이러한 작업을 완료 한 후 실행할 수 있습니다.

enable-migrations

나를 위해 일했습니다. 감사.
Najeeb 2017

VS 2019 오늘 나를 위해 일한
perezdr

17

관리자 권한으로 Visual Studio를 다시 시작 하면 문제가 해결되었습니다.


13

Visual Studio를 관리자로 실행하고 있는지 확인하십시오.


1
관리자로 VS를 실행했습니다. 당시에는 각 프로젝트에 패키지를 설치해야한다는 사실을 몰랐습니다.
Eduardo Brites 2013

12

VS 2019 Preview, .Net Core 및 EntityFramework Core에서 동일한 문제가 발생했습니다.

NuGet Microsoft.EntityFrameworkCore.ToolsMicrosoft.EntityFrameworkCore.Design. 일단 그것이 끝나면 그것은 매력처럼 작동했습니다.


10

먼저 "Install-Package EntityFramework -IncludePrerelease"를 시작한 다음 Visual Studio를 관리자 로 다시 시작하면 함께 작업했습니다.


3

Visual Studio 2012에서 동일한 오류가 발생했습니다. NuGet을 제거해야했습니다 (도구> 확장 및 업데이트> 설치됨> 모두 : NuGet 패키지 관리자 : 제거 단추). 그런 다음 Visual Studio를 닫았습니다. 그런 다음 Visual Studio를 다시 열고 NuGet을 다시 설치했습니다 (도구> 확장 및 업데이트> 온라인> Visual Studio 갤러리 : NuGet 패키지 관리자 : 다운로드 단추). 그런 다음 다음 창에서 : 설치 버튼을 클릭 한 다음 닫기 버튼을 클릭합니다. 그런 다음 Visual Studio를 닫았다가 다시 엽니 다.


이것은 나를 위해 일했습니다. 시험판으로 업그레이드하는 것보다 더 나은 옵션이라고 생각합니다.
OverMars 2014

2

나를 위해이 증상을 수정 한 것은 (VS2013) Nuget으로 EF 패키지를 제거한 다음 다시 설치하는 것입니다. csproj 파일의 차이로 인해 변경되었습니다.

<Reference Include="EntityFramework">
  <HintPath>..\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.dll</HintPath>
</Reference>

... 여기에 ...

<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.dll</HintPath>
</Reference>

나는 아직 그 이유를 완전히 이해하지 못했지만 적어도 효과가있었습니다.


add-migration / update-database 등에 문제가있었습니다. 모든 솔루션을 시도했지만 이미 EF를 제거하고 다시 설치하려고 시도했지만 작동하지 않았습니다. 지금까지 그랬습니다. EF 패키지에 문제가있는 것은 이번이 처음이 아닙니다. :(
GeoffM

2

.NET Core에서는 패키지 관리자 콘솔에 다음을 입력하여 허용 된 답변에 설명 된 것과 동일한 해결 방법에 도달 할 수있었습니다.

Install-Package EntityFramework.Core -Pre

2

나는 같은 문제가 있었고 다른 사람들이 제공 한 대부분의 솔루션을 시도했지만 아래 단계로 나를 위해 일했습니다. VS 2017이 있습니다.

단계 :

Install-Package EntityFramework -IncludePrerelease

그런 다음 클래스를 다음과 같이 만듭니다.

public class MyDBContext : DbContext { public MyDBContext() { } }

그리고 마지막 실행

Enable-Migrations -EnableAutomaticMigrations

나를 위해 작동하지 않은 것 :

: VS.

: -EnableAutomaticMigrations가없는 "Enable-Migrations"명령 만.

: Nuget 패키지 관리자 복원 또는 업데이트.

처음에 내 원래 오류는

/ * '마이그레이션 활성화'라는 용어는 cmdlet, 함수, 스크립트 파일 또는 작동 가능한 프로그램의 이름으로 인식되지 않습니다. 이름의 철자를 확인하거나 경로가 포함 된 경우 경로가 올바른지 확인하고 다시 시도하십시오. 줄 : 1 char : 1 + enable-migration + ~~~~~~~~~~~~~~ ~~ + CategoryInfo : ObjectNotFound : (마이그레이션 활성화 : 문자열) [], CommandNotFoundException * /


1

나는 같은 문제가 있었고 프로젝트 경로에 [또는]과 같은 일부 문자 때문에 프로젝트 경로를 수정하고 잘 작동한다는 것을 알았습니다!


1

Enable-Migrations -EnableAutomaticMigrations


1
여러 솔루션을 시도한 후 솔루션이 잘 작동합니다.
nguyenhoai890 nov.

Visual Studio Community 2015에서 저를 위해 일했습니다. 감사합니다 (다른 모든 솔루션은 제 경우에 실패했습니다)
fedeteka

1

이미 마이그레이션 폴더가 있으므로 Visual Studio를 다시 시작하고 패키지 관리자 콘솔에서 Update-Database -verbose를 실행했습니다. 그것은 나를 위해 일했다


1

위의 제안을 모두 시도했지만 아무것도 효과가 없었고 업데이트 Nuget Package Manager하고 작동했습니다 ..


1
  1. 아래 명령을 사용하여 현재 프로젝트에 Entity Framework를 설치합니다. PM> Install-Package EntityFramework -IncludePrerelease

  2. 아래와 같이 Model 폴더에 "MyDBContext"클래스를 추가합니다.

    공개 클래스 MyDBContext : DbContext {공개 MyDBContext () {}}

  3. 이제 아래 명령을 사용하여 현재 프로젝트에 대한 마이그레이션을 활성화하십시오. PM> enable-migrations


1

관리자 권한으로 실행 vs = >> open 프로젝트 열기

-> On the Package manager Console

Enable-migration
add-migration migrationName
update-database


0

솔루션에 여러 프로젝트가 있지만 올바른 기본 프로젝트 세트가 있으므로 작동해야한다고 생각했습니다.

결국 -StartupProject MyProjectName명령에 옵션을 추가해야했습니다.


0

이 솔루션 중 어느 것도 나를 위해 일하지 않았습니다. 내 해결책은 삭제 packages/EntityFramework.6.1.3하고Restore NuGet Packages

나는 그것이 packages/EntityFramework.6.1.3/tools/EntityFramework.psd1누락 된 것을 알아 챘다 . 그래서 이것은 가능성이있는 원인이었다. 단서가 없지만 처음에 어떻게 제거되었는지.


0

구성 섹션 "entityFramework"가 존재하고 .config 파일에 설명되어 있는지 확인하십시오.

<configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/></configSections>

        <entityFramework>
            <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
            <providers>
                <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
            </providers>
        </entityFramework>

0

Entity Framework의 버전을 확인하십시오.

6.3 인 경우 6.2로 다운 그레이드하면 제대로 작동합니다.


2
이것에 대해 자세히 설명하십시오. 이 문제를 해결하기 위해 누군가 설치된 라이브러리 버전을 다운 그레이드해야하는 이유는 무엇입니까?
andrensairr

0

asp.net core VS2019 에서 동일한 문제가 발생했습니다.

이것은 그것을 해결했습니다.

Install-Package Microsoft.EntityFrameworkCoreInstall-Package
Install-Package Microsoft.EntityFrameworkCore.Tools

패키지 관리자 콘솔의 기본 프로젝트가 다른 경우 데이터베이스 프로젝트로 설정하는 것을 잊지 마십시오.

마이그레이션을 실행하는 동안 기본 프로젝트도 역할을하는 것 같습니다. 이후 단계에서 EF 데이터베이스 프로젝트가 아닌 기본 시작 프로젝트에 이것을 설치하는 데 도움이되었습니다.

Install-Package Microsoft.EntityFrameworkCore.Design

8 년 전에는 .net 코어가 존재하지 않는다고 생각합니다.
AFetter

0

MVC 웹 프로젝트를 만드는 경우 프로젝트를 만들 때 인증을 선택해야합니다. 기본적으로 선택되어 있지 않습니다. 여기에 이미지 설명 입력


0

6.2로 다운 그레이드하면 도움이되었습니다.
.NET Framework 버전 4.6.1
이전 형식의 프로젝트 (비 .NET Standard)
Visual Studio는 초기 마이그레이션을 위해 관리자 권한으로 열려야합니다.
6.2 이상 버전의 EF에는 최신 .NET Framework가 필요합니다.


-4

솔루션 탐색기 창에서 프로젝트가 열려 있는지 확인합니다.

이것이 문제의 원인 일 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.