Istilah 'Update-Database' tidak dikenali sebagai nama cmdlet


113

Saya menggunakan EF5 beta1 dan sebelumnya saya bisa menjalankan "Update-Database". Sekarang saya menutup Visual Studio, saya tidak bisa menjalankannya. Saya mendapatkan kesalahan berikut:

Istilah 'Update-Database' tidak dikenali sebagai nama cmdlet, fungsi, file skrip, atau program yang dapat dioperasikan. Periksa ejaan nama, atau jika sebuah jalur disertakan, verifikasi bahwa jalur tersebut benar dan coba lagi. Pada baris: 1 karakter: 16 + Update-Database <<<< -verbose + CategoryInfo: ObjectNotFound: (Update-Database: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException

Saya telah mencoba menginstal ulang EF5b1 dan meskipun berhasil (sudah diinstal), 'Perbarui-Database' masih tidak berfungsi.

Adakah yang bisa membantu ???


3
Kemarin saya mengalami masalah yang sama dengan cmdlet yang berbeda, dan sistem restart yang lengkap membantu ...
nemesv

11
Reboot tidak perlu. Kami tidak menjalankan skrip init.ps1 setelah melakukan pemulihan paket (itulah mengapa perintah tidak ditemukan). Cukup keluar dan mulai ulang VS (atau bongkar / muat ulang proyek).
RickAndMSFT

1
Saya mengalami ini terjadi pada saya hari ini. Saya membuka repo untuk proyek tim dan perlu memulihkan beberapa paket. Setelah pemulihan, perintah update-databasedan add-migrationtidak akan berfungsi. Memulai ulang Visual Studio memperbaikinya.
jmbertucci

Jawaban:


169

Saya mengalami masalah ini beberapa kali belakangan ini. Saya menemukan solusi yang berhasil adalah menutup konsol pengelola paket, menutup Visual Studio dan kemudian membukanya kembali. Mem-boot ulang juga berfungsi hampir sepanjang waktu, tetapi tidak selalu.


7
Biasanya Anda hanya perlu keluar dari restart VS. Lihat komentar saya di pertanyaan asli. Terkadang Anda mungkin perlu keluar / memulai ulang VS dua kali.
RickAndMSFT

1
Baru saja menghadapi masalah dan memulai ulang Visual Studio dan semuanya berfungsi kembali. Terima kasih.
Shubh

Terima kasih, untuk solusi yang efektif, jika tidak jelek. Sepertinya itu semua yang berhasil dari sejuta hal yang telah saya coba.
ProfK

1
Ya tentu saja. Inilah solusinya. Solusi yang sah. Terima kasih Microsoft!
Khateeb321

2
Saya menginstal "Microsoft.EntityFrameworkCore.Tools" Version = "3.1.0" pada proyek data saya dan "Microsoft.EntityFrameworkCore.Design" Version = "3.1.0" pada proyek web utama saya, yang menyelesaikan masalah untuk saya.
HaBo

51

Jika Anda menggunakan Entity Framework:

Pesan Kesalahan: "Pesan Kesalahan (dari perintah Update-Database di PMC): Istilah 'Update-Database' tidak dikenali sebagai nama cmdlet, fungsi, file skrip, atau program yang dapat dioperasikan. Periksa ejaan nama , atau jika jalur disertakan, verifikasi bahwa jalur tersebut benar dan coba lagi. "

Solusi: "Keluar dari Visual Studio. Buka kembali proyek dan coba lagi."

Untuk informasi lebih lanjut silakan kunjungi: Skenario Kerangka Kerja Entitas Tingkat Lanjut 6 untuk Aplikasi Web MVC 5 (12 dari 12)

Semoga ini membantu...


@AlbatrossCafe Tentu :)
Murat Yıldız

1
Tim pengembang VS harus memberikan tombol Refresh VS untuk masalah seperti itu :)
sohaib javed

@sohaibjaved Untuk beberapa masalah, memulai ulang VS tidak akan cukup dan beberapa pembersihan direktori diperlukan seperti yang ditunjukkan pada Visual Studio 2015 sangat lambat . FYI ...
Murat Yıldız

saya tidak dapat menghitung berapa banyak hal yang diselesaikan dengan memulai kembali studio visual
EKanadily

21

Terkadang ketika saya memuat VS, saya melihat ini di konsol pengelola paket saya:

Nilai tidak boleh nol.

Nama parameter: path1

Saya belum tahu apa penyebabnya, tetapi tampaknya ada yang tidak beres selama start-up konsol Powershell yang mengganggu pendaftaran modul tertentu, seperti ekstensi EF PowerShell. Anda dapat memuatnya secara manual:

Import-Module .\packages\EntityFramework.6.1.1\tools\EntityFramework.psm1

Pastikan Anda mengganti 6.1.1 dengan versi Entity Framework apa pun saat ini.


4
Terima kasih! Satu-satunya solusi yang berhasil untuk saya. Namun, bagi siapa pun yang menggunakan EF 6.1.3 dengan VS 2015, ada bug di EntityFramework.psm1 dan ada tambalan yang tersedia di sini stackoverflow.com/a/30062684/1267778 .
parlemen

18

Menginstal ulang paket nuget memperbaiki masalah ini untuk saya

yaitu, jalankan

Install-Package EntityFramework -Version 5.0.0

di manajer paket


1
Ini berhasil untuk saya. Proyek yang saya kerjakan menggunakan EF dan saya secara otomatis menganggap paket telah diinstal. Ternyata tidak. Pengembang hanya mereferensikan langsung ke EF dll. Paket EntityFramework harus diinstal dalam proyek agar cmd Update-Database berfungsi.
stack247

Jawaban ini tampaknya tidak mungkin membantu, namun itu menyelamatkan hari saya. Terima kasih,
Nelson Miranda

Bergulat dengan FK hari ini menggunakan Fluent API, dll. Dan entah bagaimana EntityFramework terus menurun. Apa yang sebenarnya berhasil bagi saya di sepanjang jalur ini adalah melakukan hal lain Update-Package -Reinstall EntityFramework.
Matt Borja

bagi saya instal ulang dan reboot. hanya menginstal ulang tidak berfungsi, dan hanya reboot tidak berfungsi)
RMazitov

9

Anda akan mendapatkan kesalahan ini jika alat EF tidak diinstal dengan benar.

coba perintah di bawah ini di Nuget package manager // Copot Pemasangan dan instal Versi EF yang sama

Update-Package "EntityFramework" -reinstall

Jika Anda masih menghadapi masalah yang sama. buat Proyek Web baru dan jalankan perintah di bawah ini di nuget.

(Catatan: tidak perlu membuat Proyek baru di solusi yang sama atau lokasi yang sama.)

// Ini akan memperbarui EF ke versi terbaru (termasuk alat) // jika Anda ingin menggunakan versi tertentu, gunakan -versionbendera.

Update-Package "EntityFramework"

Setelah ini selesai, periksa proyek asli Anda dan Anda dapat menghapus proyek yang baru dibuat.


Iya!! Terima kasih =) Saya hanya menginstal EntityFramwork, EF.Design, EF.SqlServer dan EF.SqlServer.Design.
Janneman96



4

Aku punya masalah yang sama, dan asal itu pada nama jalan saya, saya telah di jalan saya nama direktori dengan tanda kurung lurus, seperti ini: C:\[PROJ]\TestApp.

Ketika saya melepas tanda kurung, ke C:\PROJ\TestApp, itu mulai bekerja dengan baik ...


Biasanya Anda hanya perlu keluar dari restart VS. Lihat komentar saya di pertanyaan asli.
RickAndMSFT

@RickAndMSFT Ini jauh lebih dekat ke solusi yang lebih baik yang "hanya" restart VS.
ProfK

@Antonio Bahkan saya memiliki masalah yang sama dan solusi Anda berhasil untuk saya juga.
Pengguna5590


4

Bagi saya masalahnya adalah versi Nuget .

  1. uninstall Nuget Package Manager.
  2. mulai ulang Visual Studio.
  3. memasang versi baru Nuget Package Manager.
  4. kemudian mulai ulang Visual Studio lagi.

1
Ini adalah kasus saya tetapi saya hanya perlu memperbarui nuget dalam ekstensi dan pembaruan
Oak

ini berfungsi untuk saya, menghapus nuget package manager, menginstal ulang manajer paket nuget, me-restart studio visual, menghapus EntityFramework, menginstal ulang EntityFramework
Rizan Zaky

3

Saya mengatasinya dengan menghapus dan menginstal ulang "Microsoft.EntityFrameworkCore" dan "Microsoft.EntityFrameworkCore.Tools"


1
Jika Anda menggunakan EF Core, ini adalah jawaban yang benar. Atau setidaknya, masalah bagi saya Microsoft.EntityFrameworkCore.Toolsadalah tidak terpasang.
Kirk Woll

2

Masalah ini tampaknya terjadi saat Anda membuka proyek langsung dari File Explorer. Coba mulai VS terlebih dahulu dan kemudian buka proyek - berhasil untuk saya. Saya menduga ini tentang akses ke jalur.


setelah memulai ulang beberapa kali dan tidak menyelesaikannya, ini membantu menyelesaikan masalah saya!
Niklas


0

Jika jawaban lain tidak berfungsi (VS 2017): bersihkan cache NuGet, mulai ulang VS, lalu pulihkan paket.


0

Saya menemukan bahwa itu karena paket yang rusak. Saya telah menginstal Automapper ketika sudah diinstal. Itu hanya jelas bahwa paket ini rusak ketika saya mencoba menginstal paket lain.

Menghapus paket yang rusak memecahkan masalah ini untuk saya.

Anda kemudian dapat menginstal ulang automapper. Masalahnya adalah dengan versi 5.4, sekarang saya dengan senang hati menggunakan 6.0.


0

Bagi saya ternyata inti EntityFramework tidak diinstal pada proyek saya (karena saya memulai dengan proyek kosong). Jadi menginstal paket EntityFramework menyelesaikan masalah. Terkadang jika penginstalan EntityFramework gagal, coba instal paket individual satu per satu

Misalnya

Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.Tools

0

Saya menyelesaikannya dengan memperbarui Package Manager Console.

Saya tidak mendapatkan Update-Database di Package Manager Console. Kemudian saya restart beberapa kali. Juga restart Windows.

Kemudian saya mengunduh yang baru dari nuget dan kemudian diselesaikan.


0

Saya mengalami masalah ini di Visual Studio 2015 dan mengatasinya dengan memperbarui versi Nuget.

Alat -> Ekstensi dan Pembaruan -> Pembaruan -> Galeri Visual Studio


0

Perbaikan sederhana bagi saya adalah memastikan ada tanda hubung antara pembaruan dan database, seperti ini: update-databasedan gunakan huruf kecil. Ini mungkin kebetulan, tetapi ketika saya melakukan ini di Packet Manager Console, database benar-benar diperbarui dan saya mendapatkan pesan selesai daripada not recognized as the name of a cmdlet, function, script filekesalahan.


0

Saya mulai mengalami masalah yang sama setelah saya secara tidak sengaja membuka solusi Visual Studio dengan Visual Studio 2015 bukannya 2017. Proyek ini bekerja dengan baik sebelum kecelakaan itu. Itu adalah proyek lama dengan EF 5.0 dan bukan EF Core.

Saya mencoba semua yang disarankan - memulai ulang Visual Studio berkali-kali, membersihkan cache NuGet, menghapus semua yang ada di folder paket, menginstal ulang EF 5 untuk proyek - tidak bagus, migrasi tambahan tidak dikenali. Jika saya meningkatkan EF ke 6, itu mulai mengenali perintah, tetapi saya belum ingin meningkatkannya. Jadi, segera setelah saya kembali ke EF 5, masalahnya kembali.

Satu-satunya hal yang akhirnya menyelamatkan saya adalah melakukan hal berikut:

  • tutup Visual Studio
  • hapus semuanya dari folder paket
  • hapus folder .vs di root solusi Anda. Folder ini biasanya tersembunyi, Anda harus mengaktifkan pengaturan Show hidden files and folder atau centang Hidden items in folder View tab
  • mulai Visual Studio dan buka solusi Anda. Ini akan meminta untuk mengembalikan paket NuGet, menyetujuinya.

Sekarang perintah EF akhirnya mulai bekerja kembali.


0

Dalam kasus saya:

  • Muat ulang proyek tidak membantu
  • Restart VS tidak membantu
  • Restart komputer tidak membantu
  • Reinstal EF tidak membantu

Tetapi saya menemukan artikel yang menyarankan untuk mengimpor secara manual paket EF yang hilang, menggunakan PM Conole:

Import-Module .\packages\EntityFramework.X.X.X\tools\EntityFramework.psm1

Dan solusi ini memecahkan masalah saya.


0

Dalam kasus saya memulai ulang Visual Studio (berkali-kali) tidak berhasil, kemudian ketika saya mencari di tempat lain saya menemukan pesan di terminal keluaran:

.NET SDK saat ini tidak mendukung penargetan .NET Core 2.2. Targetkan .NET Core 2.1 atau lebih rendah, atau gunakan versi .NET SDK yang mendukung .NET Core 2.2.

Jadi saya menginstal versi .NET Core yang diperlukan dan perintahnya berjalan dengan sukses.


0

Saya mengalami masalah ini di VS 2019 dengan proyek yang ada menggunakan EntityFramework 6.3.0. Proyek ini memiliki beberapa perubahan versi aneh yang dilakukan padanya selama periode waktu tertentu, dan tidak ada yang membuatnya berfungsi. Saya yakin saya mencoba setiap saran yang tercantum di sini tetapi tidak berhasil.

Akhirnya, memperbarui ke versi pre-release dari EntityFramework (saat ini 6.4.0-preview3-19553-01) melakukan memperbaiki masalah, dengan menjalankan ini di Konsol Package Manager: Update-Package EntityFramework -prerelease. Saya berharap saat versi ini dirilis secara langsung dalam beberapa minggu ke depan, versi ini akan berfungsi dengan baik.


0

Instal Microsoft.EntityFrameworkCore.Tools memecahkan masalah untuk saya, menggunakan paket nuget


0

Dalam kasus saya, saya melakukan hal berikut: - memulihkan paket NuGet yang hilang dengan mengklik tombol "Pulihkan" di atas Konsol Manajer Paket - mulai ulang Visual Studio - jalankan update-database


-1

Bagi saya masalahnya adalah versi Nuget.

Saya menghapus dan menginstal ulang Nuget kemudian memulai kembali Visual Studio dan kemudian semuanya mulai bekerja.

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.