Package Manager Console Enable-Migrations CommandNotFoundException hanya dalam proyek VS tertentu


122

Saya mencoba menjalankan perintah 'Aktifkan-Migrasi' di proyek baru dan saya mendapat pesan:

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

Tetapi di semua proyek lain, perintah berjalan dengan baik.

Mengapa ini terjadi?

BTW, saya menggunakan VS2010 Professional SP1

EDIT: Saya menginstal ulang dengan perintah: Install-Package EntityFramework -IncludePrerelease dan masalahnya hilang.


2
Hai, tambahkan solusi Anda sebagai jawaban dan tandai sebagai diterima (yang dapat Anda lakukan 2 hari kemudian), sehingga tidak akan muncul sebagai pertanyaan yang belum terjawab.
Gert Arnold

1
Saya mengalami masalah yang sama persis. Tetapi tidak ada hal di utas ini yang tampaknya berfungsi. Apakah Anda menginstal ulang seluruh studio visual atau Anda hanya menjalankan perintah itu?
ObedMarsh

Saya hanya menjalankan perintah ...
Eduardo Brites

2
Sayangnya, hasil dari perintah itu untuk saya hanya "'EntityFramework 6.1.0' sudah diinstal." dan masih belum menambahkan-migrasi atau mengaktifkan-migrasi sebagai perintah yang valid.
Mir

Saya mendapatkan Install-Package: Unable to find package 'EntityFramework'. ketika saya mencoba solusi Anda
Naguib Ihab

Jawaban:


85

Cukup mulai ulang Visual Studio bekerja untuk saya. Tidak perlu menginstal paket, dll.


8
Memulai ulang VS juga berhasil untuk saya, senang saya mencoba ini sebelum mencoba menginstal ulang EntityFramework
SM3RKY

5
Restart bekerja untuk Visual Studio 2015. Tidak perlu menginstal paket.
jonas

5
Catatan - Saya mengalami masalah ini setiap kali saya harus menginstal paket saya (seperti tarikan repo baru). Sepertinya VS perlu restart sebelum PM diinisialisasi dengan benar dengan paket baru (VS Community 2015 Update 1)
Jono

2
Tarikan repo baru juga menyebabkan ini untuk saya. Mulai ulang memperbaikinya. (VS Enterprise 2015 Pembaruan 2).
Mike Rouse

84

Saya menginstal ulang dengan perintah: Install-Package EntityFramework -IncludePrerelease dan masalahnya hilang.


13
Saya membangun solusi saya dan kemudian menutup dan membuka kembali VS 2013 dan berhasil
Luke

Perhatikan bahwa EntityFrameworkhanya mendukung .net framework 4.0 dan 4.5. Jadi, jika Anda menggunakan .net framework 4.6 atau lebih tinggi, itu tidak berfungsi.
Tân

1
@ TânNguyễn - apa itu? EntityFramework 6.1.3 NuGet bekerja dengan baik di proyek 4.6.x saya
bkwdesign

Restart tidak melakukannya untuk saya, tetapi ini berhasil.
robbpriestley

29

Masalah ini terjadi karena kami tidak memasang Entity Framework. Silakan instal Entity Framework menggunakan perintah di bawah ini.

Install-Package EntityFramework -IncludePrerelease

Setelah diinstal, pilih proyek di drop-down proyek konsol pengelola paket.

Pastikan setidaknya satu kelas dalam proyek Anda mewarisi dari konteks data, jika tidak gunakan kelas di bawah ini:

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

Jika kami tidak melakukan ini, kami akan mendapatkan kesalahan lain:

No context type was found in the assembly

Setelah menyelesaikan hal-hal tersebut, Anda dapat menjalankannya

enable-migrations

Bekerja untuk saya. Terima kasih.
Najeeb

Bekerja untuk saya hari ini dengan VS 2019.
perezdr

17

Memulai ulang Visual Studio dengan hak administrator memecahkan masalah bagi saya.


13

Pastikan Anda menjalankan Visual Studio sebagai administrator.


1
Saya menjalankan VS sebagai administrator. Pada saat itu saya tidak tahu kami perlu menginstal paket pada setiap proyek.
Eduardo Brites

12

Saya memiliki masalah yang sama dengan VS 2019 Preview, .Net Core, dan EntityFramework Core.

Ternyata saya harus menginstal melalui NuGet Microsoft.EntityFrameworkCore.Toolsdan Microsoft.EntityFrameworkCore.Design. Setelah selesai, itu bekerja seperti pesona.


10

Pertama "Instal-Paket EntityFramework -IncludePrerelease" dan kemudian Restart Visual Studio sebagai Administrator bekerja untuk saya.


3

Dalam Visual Studio 2012 saya mengalami kesalahan yang sama. Harus menghapus NuGet (Tools> Extensions and Updates> Installed> All: NuGet Package Manager: tombol Uninstall). Kemudian tutup Visual Studio. Kemudian buka kembali Visual Studio dan instal ulang NuGet (Tools> Extensions and Updates> Online> Visual Studio Gallery: NuGet Package Manager: tombol Download). Kemudian di jendela berikut: klik tombol Install, lalu klik tombol tutup. Kemudian tutup dan buka kembali Visual Studio.


Ini berhasil untuk saya, saya pikir ini adalah opsi yang lebih baik daripada memaksa peningkatan ke pra-rilis.
OverMars

2

Apa yang memperbaiki gejala ini untuk saya (VS2013) adalah menghapus instalasi kemudian menginstal ulang paket EF dengan Nuget. Perbedaan dalam file csproj mengubah ini ...

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

... menjadi ini ...

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

Saya belum sepenuhnya mengerti mengapa, tetapi setidaknya berhasil.


Saya mengalami masalah dengan add-migrasi / update-database dll. Saya mencoba semua solusi tetapi saya yakin saya sudah mencoba menghapus dan menginstal ulang EF, itu tidak berhasil. Sampai sekarang saat itu. Ini bukan pertama kalinya saya mengalami masalah dengan paket EF. :(
GeoffM

2

Di .NET Core, saya dapat mencapai resolusi yang sama seperti yang dijelaskan dalam jawaban yang diterima, dengan memasukkan yang berikut ini di konsol manajer paket:

Install-Package EntityFramework.Core -Pre

2

Saya memiliki masalah yang sama dan saya mencoba sebagian besar solusi yang disediakan oleh orang lain tetapi berhasil untuk saya dengan langkah-langkah di bawah ini. Saya memiliki VS 2017.

Langkah:

Install-Package EntityFramework -IncludePrerelease

lalu buat kelas sebagai

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

dan pada eksekusi terakhir

Enable-Migrations -EnableAutomaticMigrations

Apa yang tidak berhasil untuk saya:

: Memulai Ulang VS.

: hanya perintah "Aktifkan-Migrasi", yang tanpa -EnableAutomaticMigrations.

: memulihkan atau memperbarui Pengelola Paket Nuget.

Kesalahan asli saya pada awalnya adalah

/ * Istilah 'aktifkan-migrasi' tidak dikenali sebagai nama cmdlet, fungsi, file skrip, atau program yang dapat dioperasikan. Periksa ejaan nama, atau jika sebuah jalur telah disertakan, verifikasi bahwa jalur tersebut sudah benar dan coba lagi. Pada baris: 1 char: 1 + enable-migrasi + ~~~~~~~~~~~~~~ ~~ + CategoryInfo: ObjectNotFound: (aktifkan-migrasi: String) [], CommandNotFoundException * /


1

Saya memiliki masalah yang sama dan saya menemukan bahwa itu karena beberapa karakter dalam jalur proyek seperti [atau] saya memperbaiki jalur proyek dan bekerja dengan baik!


1

Enable-Migrations -EnableAutomaticMigrations


1
Setelah mencoba beberapa solusi, solusi Anda berfungsi dengan baik untuk saya.
nguyenhoai890

Bekerja untuk saya di Komunitas Visual Studio 2015. Terima kasih (Semua solusi lain gagal dalam kasus saya)
fedeteka

1

Karena saya sudah memiliki folder migrasi, saya memulai ulang Visual Studio dan menjalankan Update-Database -verbose di konsol manajer paket. Itu berhasil untuk saya


1

Saya mencoba semua saran di atas tetapi tidak ada yang berhasil untuk saya, lalu saya perbarui Nuget Package Managerdan berhasil ..


1
  1. Instal kerangka kerja Entitas ke proyek saat ini menggunakan perintah di bawah ini: PM> Install-Package EntityFramework -IncludePrerelease

  2. Tambahkan kelas "MyDBContext" di folder Model seperti yang diberikan di bawah ini:

    kelas publik MyDBContext: DbContext {public MyDBContext () {}}

  3. Sekarang aktifkan migrasi untuk proyek saat ini dengan perintah di bawah ini: PM> aktifkan-migrasi


1

run as administrator vs = >> buka proyek

-> On the Package manager Console

Enable-migration
add-migration migrationName
update-database


0

Saya memiliki beberapa proyek dalam solusinya, tetapi saya memiliki kumpulan Proyek Default yang benar, jadi saya pikir itu harus berfungsi.

Pada akhirnya, saya harus menambahkan -StartupProject MyProjectNameopsi ke perintah tersebut


0

Tak satu pun dari solusi ini berhasil untuk saya. Solusi saya adalah menghapus packages/EntityFramework.6.1.3danRestore NuGet Packages

Saya perhatikan packages/EntityFramework.6.1.3/tools/EntityFramework.psd1itu hilang, jadi ini kemungkinan penyebabnya. Bagaimana itu bisa dihapus di tempat pertama meskipun saya tidak tahu.


0

Periksa apakah bagian config "entityFramework" ada dan dijelaskan dalam file .config Anda

<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

Periksa versi Kerangka Entitas.

jika 6.3, turunkan ke 6.2 dan seharusnya berfungsi dengan baik


2
Tolong uraikan ini. Mengapa seseorang harus menurunkan versi pustaka yang diinstal hanya untuk memperbaiki masalah ini?
andrensairr

0

Saya baru saja mengalami masalah yang sama di asp.net core VS2019

Ini menyelesaikannya:

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

Jangan lupa untuk menyetel proyek default di Package Manager Console ke proyek database Anda jika berbeda.

Saat menjalankan migrasi, proyek default juga tampaknya berperan. Pada langkah selanjutnya, ini membantu menginstal ini ke proyek startup utama saya (bukan proyek database EF):

Install-Package Microsoft.EntityFrameworkCore.Design

Saya tidak berpikir 8 tahun yang lalu. Inti bersih ada.
AFetter

0

jika Anda membuat proyek MVC Web Anda harus memilih Otentikasi saat membuat proyek. secara default tidak dipilih. masukkan deskripsi gambar di sini


0

downgrade ke 6.2 membantu saya.
.NET Framework versi 4.6.1
Proyek dalam format lama (non .NET Standard)
Visual Studio harus dibuka dengan hak Admin untuk migrasi awal.
Saya kira EF dengan versi di atas 6.2 membutuhkan .NET Framework terbaru.


-4

Periksa apakah proyek terbuka di jendela Solution Explorer.

Ini bisa menjadi penyebab masalah Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.