Package Manager Console Enable-Migrations CommandNotFoundException chỉ trong một dự án VS cụ thể


122

Tôi đã cố gắng chạy lệnh 'Enable-Migrations' trong một dự án mới và tôi nhận được thông báo:

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

Nhưng trong tất cả các dự án khác, lệnh chạy tốt.

Tại sao chuyện này đang xảy ra?

BTW, tôi đang sử dụng VS2010 Professional SP1

CHỈNH SỬA: Tôi đã cài đặt lại bằng lệnh: Install-Package EntityFramework -IncludePrelease và sự cố đã biến mất.


2
Xin chào, vui lòng thêm giải pháp của bạn làm câu trả lời và đánh dấu nó là được chấp nhận (bạn có thể thực hiện 2 ngày sau đó), vì vậy nó sẽ không hiển thị là câu hỏi chưa được trả lời.
Gert Arnold

1
Tôi đang gặp vấn đề chính xác này. Nhưng không có thứ nào trong chuỗi này dường như hoạt động. Bạn đã cài đặt lại toàn bộ studio trực quan hay chỉ đơn giản là chạy lệnh đó?
ObedMarsh

Tôi chỉ đơn giản là chạy lệnh ...
Eduardo Brites

2
Đáng buồn thay, kết quả của lệnh đó đối với tôi chỉ là "'EntityFramework 6.1.0' đã được cài đặt." và nó vẫn không có thêm-di chuyển hoặc bật-di chuyển dưới dạng các lệnh hợp lệ.
Mir

Tôi đang nhận được Gói cài đặt: Không thể tìm thấy gói 'EntityFramework'. khi tôi cố gắng giải pháp của bạn
Naguib Ihab

Câu trả lời:


85

Chỉ cần khởi động lại Visual Studio đã phù hợp với tôi. Không cần cài đặt các gói, v.v.


8
Khởi động lại VS cũng làm việc cho tôi, vui vì tôi đã cố gắng này trước khi cố gắng reinstal các EntityFramework
SM3RKY

5
Khởi động lại hoạt động cho Visual Studio 2015. Không cần cài đặt gói.
jonas

5
Lưu ý - Tôi gặp sự cố này mỗi khi phải cài đặt các gói của mình (như một lần kéo repo mới). Có vẻ như VS cần khởi động lại trước khi PM được khởi chạy đúng cách với các gói mới (VS Community 2015 Cập nhật 1)
Jono

2
Kéo repo tươi cũng gây ra điều này cho tôi. Khởi động lại đã sửa nó. (VS Enterprise 2015 Cập nhật 2).
Mike Rouse

84

Tôi đã cài đặt lại bằng lệnh: Install-Package EntityFramework -IncludePrelease và sự cố đã biến mất.


13
Tôi đã xây dựng giải pháp của mình, sau đó đóng và mở lại VS 2013 và nó hoạt động
Luke

Lưu ý rằng EntityFrameworkchỉ hỗ trợ .net framework 4.0 và 4.5. Vì vậy, nếu bạn đang sử dụng .net framework 4.6 hoặc cao hơn, nó không hoạt động.
Tân

1
@ TânNguyễn - cái gì vậy? My EntityFramework 6.1.3 NuGet đang hoạt động tốt trong dự án 4.6.x của tôi
bkwdesign

Khởi động lại không làm điều đó cho tôi, nhưng điều này đã làm.
robbpriestley

29

Sự cố này xảy ra vì chúng tôi chưa cài đặt Entity Framework. Vui lòng cài đặt Entity Framework bằng lệnh dưới đây.

Install-Package EntityFramework -IncludePrerelease

Sau khi cài đặt, hãy chọn dự án trong trình đơn thả xuống dự án mặc định của bảng điều khiển gói manger.

Đảm bảo ít nhất một lớp trong dự án của bạn kế thừa từ ngữ cảnh dữ liệu, nếu không hãy sử dụng lớp dưới đây:

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

Nếu chúng tôi không làm điều này, chúng tôi sẽ gặp một lỗi khác:

No context type was found in the assembly

Sau khi hoàn thành những điều này, bạn có thể chạy

enable-migrations

Đã làm cho tôi. Cảm ơn.
Najeeb

Đã làm việc cho tôi hôm nay với VS 2019.
perezdr

17

Khởi động lại Visual Studio với đặc quyền của quản trị viên đã giải quyết được sự cố cho tôi.


13

Đảm bảo rằng bạn đang chạy Visual Studio với tư cách quản trị viên.


1
Tôi đã chạy VS với tư cách quản trị viên. Vào thời điểm đó, tôi không biết chúng tôi cần cài đặt gói trên mỗi dự án.
Eduardo Brites

12

Tôi đã gặp vấn đề tương tự với VS 2019 Preview, .Net Core và EntityFramework Core.

Hóa ra tôi phải cài đặt qua NuGet Microsoft.EntityFrameworkCore.ToolsMicrosoft.EntityFrameworkCore.Design. Một khi điều đó đã được thực hiện, nó hoạt động như một sự quyến rũ.


10

Đầu tiên "Install-Package EntityFramework -IncludePrelease" và sau đó Khởi động lại Visual Studio với tư cách Quản trị viên đã cùng làm việc cho tôi.


3

Trong Visual Studio 2012, tôi gặp lỗi tương tự. Phải gỡ cài đặt NuGet (Công cụ> Tiện ích mở rộng và Cập nhật> Đã cài đặt> Tất cả: Trình quản lý gói NuGet: Nút gỡ cài đặt). Sau đó, đóng Visual Studio. Sau đó, mở lại Visual Studio và cài đặt lại NuGet (Công cụ> Tiện ích mở rộng và Cập nhật> Trực tuyến> Thư viện Visual Studio: Trình quản lý gói NuGet: Nút tải xuống). Sau đó, trong các cửa sổ sau: nhấp vào nút Cài đặt, sau đó nhấp vào nút đóng. Sau đó, đóng và mở lại Visual Studio.


Điều này đã hiệu quả với tôi, tôi nghĩ rằng đó là một lựa chọn tốt hơn là buộc phải nâng cấp lên bản phát hành trước.
OverMars

2

Điều đã khắc phục hiện tượng này cho tôi (VS2013) là gỡ cài đặt sau đó cài đặt lại gói EF với Nuget. Sự khác biệt trong tệp csproj đã thay đổi điều này ...

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

... vào cái này ...

<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>

Tôi không hoàn toàn hiểu tại sao, nhưng nó đã hoạt động ít nhất.


Tôi đã gặp sự cố với add -igration / update-database, v.v. Tôi đã thử tất cả các giải pháp nhưng mặc dù tôi chắc chắn rằng tôi đã thử gỡ cài đặt và cài đặt lại EF nhưng nó không hoạt động. Cho đến bây giờ khi nó đã làm. Đây không phải là lần đầu tiên tôi gặp sự cố với các gói EF. :(
GeoffM

2

Trong .NET Core, tôi có thể đạt được độ phân giải tương tự như được mô tả trong câu trả lời được chấp nhận, bằng cách nhập thông tin sau vào bảng điều khiển trình quản lý gói:

Install-Package EntityFramework.Core -Pre

2

Tôi đã gặp vấn đề tương tự và tôi đã thử hầu hết các giải pháp được cung cấp bởi những người khác nhưng nó hoạt động với tôi với các bước dưới đây. Tôi có VS 2017.

Các bước:

Install-Package EntityFramework -IncludePrerelease

sau đó tạo một lớp dưới dạng

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

và ở lần thực thi cuối cùng

Enable-Migrations -EnableAutomaticMigrations

Điều gì không hiệu quả với tôi:

: Khởi động lại VS.

: chỉ có lệnh "Enable-Migrations", không có -EnableAutomaticMigrations.

: khôi phục hoặc cập nhật Trình quản lý gói Nuget.

Lỗi ban đầu của tôi lúc đầu là

/ * Thuật ngữ 'enable -igration' không được công nhận là tên của lệnh ghép ngắn, hàm, tệp kịch bản hoặc chương trình có thể hoạt động. Kiểm tra chính tả của tên hoặc nếu một đường dẫn được bao gồm, hãy xác minh rằng đường dẫn đó chính xác và thử lại. Tại dòng: 1 char: 1 + enable -igration + ~~~~~~~~~~~~~~~ ~~ + CategoryInfo: ObjectNotFound: (enable -igration: String) [], CommandNotFoundException * /


1

Tôi đã gặp vấn đề tương tự và tôi thấy rằng đó là do một số ký tự trong đường dẫn dự án như [hoặc] tôi sửa đường dẫn dự án và nó hoạt động tốt!


1

Enable-Migrations -EnableAutomaticMigrations


1
Sau khi thử một số giải pháp, giải pháp của bạn hoạt động tốt đối với tôi.
nguyenhoai890

Đã làm việc cho tôi trên Cộng đồng Visual Studio 2015. Cảm ơn (Tất cả các giải pháp khác không thành công với trường hợp của tôi)
fedeteka

1

Vì tôi đã có thư mục di chuyển, tôi khởi động lại Visual Studio và chạy Update-Database -verbose trong bảng điều khiển trình quản lý gói. Điều đó đã làm việc cho tôi


1

Tôi đã thử tất cả các đề xuất trên nhưng không có gì hiệu quả với tôi, sau đó tôi cập nhật Nuget Package Managervà nó hoạt động ..


1
  1. Cài đặt khung thực thể cho dự án hiện tại bằng lệnh dưới đây: PM> Install-Package EntityFramework -IncludePrelease

  2. Thêm một lớp "MyDBContext" trong thư mục Model như được cung cấp bên dưới:

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

  3. Bây giờ hãy bật di chuyển cho dự án hiện tại bằng lệnh dưới đây: PM> enable-migrations


1

chạy với tư cách quản trị viên vs = >> mở Mở dự án

-> On the Package manager Console

Enable-migration
add-migration migrationName
update-database

0

Trong VS 2013, hãy thử cài đặt UPDATE 1 (RC1) và sự cố đã được giải quyết.


0

Tôi có nhiều dự án trong giải pháp, nhưng tôi đã đặt đúng Dự án mặc định, vì vậy tôi nghĩ nó sẽ hoạt động.

Cuối cùng, tôi phải thêm -StartupProject MyProjectNametùy chọn vào lệnh


0

Không có giải pháp nào trong số này hiệu quả với tôi. Giải pháp của tôi là xóa packages/EntityFramework.6.1.3Restore NuGet Packages

Tôi nhận thấy rằng packages/EntityFramework.6.1.3/tools/EntityFramework.psd1bị thiếu, vì vậy đây có thể là một nguyên nhân. Làm thế nào nó đã bị loại bỏ ngay từ đầu mặc dù tôi không có manh mối.


0

Kiểm tra xem phần cấu hình "entityFramework" có tồn tại và được mô tả trong tệp .config của bạn không

<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

Kiểm tra phiên bản của Khung thực thể.

nếu nó là 6.3, hãy hạ cấp nó xuống 6.2 và nó sẽ hoạt động tốt


2
Xin vui lòng giải thích về điều này. Tại sao ai đó nên hạ cấp phiên bản thư viện đã cài đặt chỉ để khắc phục sự cố này?
andrensairr

0

Tôi vừa gặp sự cố tương tự trong asp.net core VS2019

Điều này đã giải quyết nó:

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

Đừng quên đặt dự án mặc định trong Bảng điều khiển Trình quản lý Gói thành dự án cơ sở dữ liệu của bạn trong trường hợp nó khác.

Trong khi thực hiện di chuyển, dự án mặc định dường như cũng đóng một vai trò nào đó. Ở bước sau, nó đã giúp cài đặt điều này vào dự án khởi động chính của tôi (không phải dự án cơ sở dữ liệu EF):

Install-Package Microsoft.EntityFrameworkCore.Design

Tôi không nghĩ rằng 8 năm trước lõi .net tồn tại.
AFetter

0

nếu bạn tạo một dự án Web MVC Bạn nên chọn Xác thực khi tạo dự án. theo mặc định không được chọn. nhập mô tả hình ảnh ở đây


0

hạ cấp xuống 6.2 giúp tôi với.
.NET Framework phiên bản 4.6.1
Dự án ở định dạng cũ (không phải .NET Standard)
Visual Studio phải được mở với quyền Quản trị viên để di chuyển ban đầu.
Tôi đoán EF với phiên bản trên 6.2 yêu cầu .NET Framework mới nhất.


-4

Kiểm tra xem dự án có đang mở trong cửa sổ Solution Explorer hay không.

Đây có thể là nguyên nhân của vấn đề của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.