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

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

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

Murat Yıldız
sumber
@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.

Steve Rukuts
sumber
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

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

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

Mulai ulang Visual Studio, itu akan menyelesaikan masalah. Bekerja untuk saya.

Abdullah Ibn Mannan
sumber
Sungguh lucu bagaimana me-restart PC saya bekerja untuk masalah ini
Pangeran Tegaton
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 ...

António Mourão
sumber
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

Studio visual Just ReOpen adalah pekerjaan untuk saya

Serigala abu-abu
sumber
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.
reza.cse08
sumber
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"

Marco Rinaldi
sumber
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.

Johnny Nintendo
sumber
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.


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

tree_are_great
sumber
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
Deepak Kumar
sumber
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.

Shiblee
sumber
0

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

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

Owen Pauling
sumber
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.

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

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

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

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

pengguna12861
sumber
0

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

Mario Berthely
sumber
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

Dragos Bajenaru
sumber
-1

Bagi saya masalahnya adalah versi Nuget.

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

Luke
sumber