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.

Eduardo Brites
sumber
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.

Donal
sumber
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.

Eduardo Brites
sumber
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
Lijo
sumber
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.

Satchi
sumber
13

Pastikan Anda menjalankan Visual Studio sebagai administrator.

jackncoke
sumber
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.

Jean-David Lanz
sumber
10

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

Uzay
sumber
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.

mee
sumber
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.

biskuit314
sumber
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
ne1410s
sumber
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 * /

manusia Besi
sumber
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!

pixparker
sumber
1

Enable-Migrations -EnableAutomaticMigrations

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

depcka
sumber
1

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

Reyan Chougle
sumber
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

si buta salju
sumber
1

run as administrator vs = >> buka proyek

-> On the Package manager Console

Enable-migration
add-migration migrationName
update-database
jamaljaj
sumber
0

Di VS 2013, coba instal UPDATE 1 (RC1) dan masalah teratasi.

Danilo Breda
sumber
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

L_7337
sumber
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.

Cameron Aavik
sumber
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>
KiriK
sumber
0

Periksa versi Kerangka Entitas.

jika 6.3, turunkan ke 6.2 dan seharusnya berfungsi dengan baik

Samith Kumar
sumber
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
CodingYourLife
sumber
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

M Fa
sumber
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.

Артем
sumber
-4

Periksa apakah proyek terbuka di jendela Solution Explorer.

Ini bisa menjadi penyebab masalah Anda.

Renato Diniz
sumber