'Update-Database' terimi bir cmdlet'in adı olarak tanınmıyor


113

EF5 beta1 kullanıyorum ve daha önce "Update-Database" i çalıştırabiliyordum. Artık Visual Studio'yu kapattığıma göre onu çalıştıramıyorum. Şu hatayı alıyorum:

'Update-Database' terimi bir cmdlet, işlev, komut dosyası dosyası veya çalıştırılabilir program adı olarak tanınmaz. Adın yazılışını kontrol edin veya bir yol dahil edilmişse, yolun doğru olduğunu doğrulayın ve tekrar deneyin. Satır: 1 karakter: 16 + Veritabanını Güncelle <<<< -verbose + CategoryInfo: ObjectNotFound: (Update-Database: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException

EF5b1'i yeniden kurmayı denedim ve başarılı olmasına rağmen (zaten kurulu) 'Update-Database' hala çalışmıyor.

Biri yardım edebilir mi???


3
Dün farklı bir cmdlet ile benzer bir sorun yaşadım ve sistemin tamamen yeniden başlatılması yardımcı oldu ...
nemesv

11
Yeniden başlatma gerekli değildir. Paket geri yüklemeyi gerçekleştirdikten sonra init.ps1 komut dosyalarını çalıştırmayız (bu nedenle komut bulunamadı). Basitçe VS'den çıkın ve yeniden başlatın (veya projeyi kaldırın / yeniden yükleyin).
RickAndMSFT

1
Bu bugün başıma geldi. Bir ekip projesi için bir depo açtım ve bazı paketleri geri yüklemesi gerekiyordu. Geri yüklemeden sonra update-databaseve add-migrationkomutları çalışmaz. Visual Studio'nun yeniden başlatılması sorunu çözdü.
jmbertucci

Yanıtlar:


169

Son zamanlarda bu sorunu birkaç kez yaşıyorum. İşe yarayan çözümün Paket Yöneticisi Konsolunu kapatmak, Visual Studio'yu kapatmak ve ardından yeniden açmak olduğunu buldum. Yeniden başlatma da çoğu zaman işe yaradı, ancak her zaman değil.


7
Genellikle VS'yi yeniden başlatmadan çıkmanız yeterlidir. Orijinal soruda yorumlarıma bakın. Nadir durumlarda, VS'den iki kez çıkmanız / yeniden başlatmanız gerekebilir.
RickAndMSFT

1
Sadece sorunla karşılaştım ve Visual Studio'yu yeniden başlattım ve işler tekrar çalışıyordu. Teşekkürler.
Shubh

Berbat değilse de etkili bir çözüm için teşekkür ederim. Denediğim milyonlarca şeyden işe yarayan her şey gibi görünüyor.
ProfK

1
Evet tabi ki. Çözüm bu. Yasal çözüm. Teşekkürler Microsoft!
Khateeb321

2
Veri projelerime "Microsoft.EntityFrameworkCore.Tools" Version = "3.1.0" ve ana web projemde "Microsoft.EntityFrameworkCore.Design" Version = "3.1.0" yükledim, bu benim için sorunu çözdü.
HaBo

51

Entity Framework kullanıyorsanız:

Hata Mesajı: "Hata Mesajı (PMC'deki Update-Database komutundan): 'Update-Database' terimi bir cmdlet, fonksiyon, komut dosyası veya çalıştırılabilir program adı olarak tanınmıyor. Adın yazımını kontrol edin veya bir yol dahil edilmişse, yolun doğru olduğunu doğrulayın ve tekrar deneyin. "

Çözüm: "Visual Studio'dan çıkın. Projeyi yeniden açın ve tekrar deneyin."

Daha fazla bilgi için lütfen şu adresi ziyaret edin: MVC 5 Web Uygulaması için Advanced Entity Framework 6 Senaryoları (12/12)

Bu yardımcı olur umarım...


@AlbatrossCafe Elbette :)
Murat Yıldız

1
VS geliştirici ekibi, bu tür sorunlar için
VS'yi

@sohaibjaved Bazı sorunlar için, VS'yi yeniden başlatmak yeterli olmaz ve Visual Studio 2015'te belirtildiği gibi bazı dizin temizliği son derece yavaştır . Bilginize ...
Murat Yıldız

görsel stüdyoyu yeniden başlatarak kaç şeyin çözüldüğünü kaybettim
EKanadily

21

Bazen VS'yi yüklediğimde, bunu paket yöneticisi konsolumda görüyorum:

Değer sıfır olamaz.

Parametre adı: yol1

Buna neyin sebep olduğu hakkında henüz bir fikrim yok, ancak Powershell konsolunun başlatılması sırasında EF powershell uzantıları gibi belirli modüllerin kaydını kesintiye uğratan bir şeyler ters gidiyor gibi görünüyor. Ancak manuel olarak yükleyebilirsiniz:

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

6.1.1'i mevcut Entity Framework sürümünüzle değiştirdiğinizden emin olun.


4
Teşekkür ederim! Benim için çalışan tek çözüm. Ancak, VS 2015 ile EF 6.1.3 kullanan herkes için EntityFramework.psm1'de bir hata vardır ve burada stackoverflow.com/a/30062684/1267778 adlı bir yama bulunmaktadır .
parlamento

18

NuGet paketini yeniden yüklemek bu sorunu benim için çözdü

yani, yürütmek

Install-Package EntityFramework -Version 5.0.0

paket yöneticisinde


1
Bu benim için çalışıyor. Üzerinde çalıştığım proje EF kullandı ve otomatik olarak paketin yüklendiğini varsayıyorum. Çıktı, değildi. Geliştirici az önce doğrudan EF dll'ye başvurdu. Update-Database cmd'nin çalışması için EntityFramework paketinin projeye yüklenmesi gerekir.
stack247

Bu cevabın yardımcı olması pek olası görünmüyor, ancak günümü kurtardı. Teşekkürler,
Nelson Miranda

Bugün Fluent API vb. Kullanan FK'lerle güreşmek ve bir şekilde EntityFramework düşmeye devam ediyor. Bu çizgide benim için gerçekten işe yarayan şey, başka bir şey yapmaktı Update-Package -Reinstall EntityFramework.
Matt Borja

benim için yeniden yükleyin ve yeniden başlatın. sadece yeniden yükleme çalışmıyor ve sadece yeniden
başlat

9

EF araçları düzgün kurulmadığında bu hatayı alırsınız.

Nuget paket yöneticisinde aşağıdaki komutu deneyin // EF'nin aynı Sürümünü kaldırır ve yükler

Update-Package "EntityFramework" -reinstall

Hala aynı sorunla karşı karşıya kalırsanız. Yeni bir Web Projesi oluşturun ve aşağıdaki komutu nuget'te çalıştırın.

(Not: Yeni Projeyi aynı çözümde veya aynı konumda oluşturmanıza gerek yoktur.)

// Bu, EF'yi en son sürüme günceller (araçlar dahil) // belirli bir sürümü kullanmak istiyorsanız, -versionbayrağı kullanın .

Update-Package "EntityFramework"

Bu yapıldıktan sonra, orijinal projenizi kontrol edin ve yeni oluşturulan projeyi silebilirsiniz.


Evet!! Teşekkürler =) Yalnızca EntityFramwork, EF.Design, EF.SqlServer ve EF.SqlServer.Design yükledim.
Janneman96

9

Sadece Visual Studio'yu yeniden başlatın, sorunu çözecektir. Benim için çalışıyor.


Bilgisayarımı yeniden başlatmanın bu sorun için çalışması gerçekten komik
Prince Tegaton


4

Böyle düz parantez ile benim yolda bir dizin adı vardı, bu aynı problem vardı ve bunun kökeni benim yol adı oldu: C:\[PROJ]\TestApp.

Parantezleri çıkardığımda, C:\PROJ\TestAppgayet iyi çalışmaya başladı ...


Genellikle VS'yi yeniden başlatmadan çıkmanız yeterlidir. Orijinal soruda yorumlarıma bakın.
RickAndMSFT

@RickAndMSFT Bu, VS'yi "sadece" yeniden başlatan daha iyi bir çözüme çok daha yakın.
ProfK

@Antonio Ben bile aynı sorunu yaşadım ve çözümünüz benim için de çalıştı.
User5590


4

Benim için sorun Nuget versiyonuydu .

  1. Nuget Paket Yöneticisini kaldırın.
  2. Visual Studio'yu yeniden başlatın.
  3. Nuget Paket Yöneticisinin yeni sürümünü yükledi.
  4. daha sonra Visual Studio'yu yeniden başlatın.

1
Bu benim için böyleydi ama sadece nuget'i uzantılarda ve güncellemede güncellemem gerekiyor
Oak

bu benim için çalıştı, nuget paket yöneticisini kaldırdı, nuget paket yöneticisini yeniden yükledi, görsel stüdyoyu yeniden başlattı, EntityFramework kaldırıldı, EntityFramework yeniden yüklendi
Rizan Zaky

3

"Microsoft.EntityFrameworkCore" ve "Microsoft.EntityFrameworkCore.Tools" yazılımlarının kaldırılması ve yeniden yüklenmesi ile çözdüm


1
EF Core kullanıyorsanız, bu doğru yanıttır. Ya da en azından benim için sorun Microsoft.EntityFrameworkCore.Toolskurulu olmamasıydı.
Kirk Woll

2

Bu sorun, projeyi doğrudan Dosya Gezgini'nden açtığınızda ortaya çıkıyor. Önce VS'yi başlatmayı ve ardından projeyi açmayı deneyin - benim için çalıştı. Bunun yollara erişimle ilgili olduğunu tahmin ediyorum.


Birkaç kez yeniden başlattıktan ve çözülmedikten sonra sorunumun çözülmesine yardımcı oldu!
Niklas


0

Diğer yanıtlar işe yaramazsa (VS 2017): NuGet önbelleğini temizleyin, VS'yi yeniden başlatın, ardından paketleri geri yükleyin.


0

Bozuk bir paketten kaynaklandığını buldum. Automapper'ı zaten kurulduğunda kurmuştum. Sadece başka bir paket kurmaya çalıştığımda bu paketin bozuk olduğu açıktı.

Bozuk paketi kaldırmak bu sorunu benim için çözdü.

Daha sonra otomatikleştiriciyi yeniden yükleyebilirsiniz. Sorun 5.4 sürümündeydi, şimdi mutluyum 6.0 kullanıyorum.


0

Benim için EntityFramework çekirdeğinin projemde kurulu olmadığı ortaya çıktı (çünkü boş projeyle başladım). Yani EntityFramework paketini yüklemek sorunu çözdü. Bazen EntityFramework kurulumu başarısız olursa, paketleri tek tek kurmayı deneyin.

Örneğin

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

0

Paket Yöneticisi Konsolunu güncelleyerek çözdüm.

Paket Yöneticisi Konsolunda Güncelleme Veritabanını almıyordum. Sonra birkaç kez yeniden başlatırım. Ayrıca Windows'u yeniden başlatın.

Daha sonra nuget'ten yenisini indirdim ve çözüldü.


0

Bu sorunu Visual Studio 2015'te yaşadım ve Nuget sürümünü güncelleyerek çözdüm.

Araçlar -> Uzantılar ve Güncellemeler -> Güncellemeler -> Visual Studio Gallery


0

Benim için basit bir düzeltme, güncelleme ile veritabanı arasında şöyle bir çizgi olduğundan emin olmaktı: update-databaseve küçük harf kullanın. Tesadüfi olabilir, ancak bunu Packet Manager Console'da yaptığımda veritabanı gerçekten güncellendi ve not recognized as the name of a cmdlet, function, script filehata yerine tamamlandı mesajı aldım .


0

2017 yerine yanlışlıkla Visual Studio 2015 ile bir Visual Studio çözümü açtıktan sonra aynı sorunu yaşamaya başladım. Proje bu aksilikten önce gayet iyi çalıştı. EF 5.0 değil, EF Core ile eski bir projeydi.

Önerilen her şeyi denedim - Visual Studio'yu defalarca yeniden başlattım, NuGet önbelleğini temizledim, paketler klasöründeki her şeyi sildim, proje için EF 5'i yeniden yükledim - işe yaramadı, eklenti geçişi tanınmadı. EF'i 6'ya yükselttiysem, komutları tanımaya başladı, ancak henüz yükseltme yapmak istemedim. Bu nedenle, EF 5'e geri döner dönmez sorun geri döndü.

Beni nihayet kurtaran tek şey şunları yapmaktı:

  • Visual Studio'yu kapat
  • her şeyi paketler klasöründen sil
  • Çözümünüzün kökündeki .vs klasörünü silin. Bu klasör genellikle gizlidir, Gizli dosya ve klasörleri göster ayarını açmanız veya Klasör Görünümü sekmesinde Gizli öğeleri işaretlemeniz gerekir.
  • Visual Studio'yu başlatın ve çözümünüzü açın. NuGet paketlerini geri yüklemeyi isteyecek, kabul edecek.

Artık EF komutları nihayet yeniden çalışmaya başladı.


0

Benim durumumda:

  • Projeyi yeniden yüklemek yardımcı olmadı
  • Yeniden başlatma VS yardımcı olmadı
  • Bilgisayarı yeniden başlatmak yardımcı olmadı
  • Yeniden kurulum EF yardımcı olmadı

Ancak , PM Conole kullanarak eksik EF paketini manuel olarak içe aktarma önerisinin olduğu bir makale buldum:

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

Ve bu çözüm sorunumu çözdü.


0

Benim durumumda Visual Studio'yu yeniden başlatmak (birçok kez) işe yaramadı, sonra başka bir yere baktığım için çıkış terminalinde bir mesaj buldum:

Geçerli .NET SDK, .NET Core 2.2'yi hedeflemeyi desteklemez. NET Core 2.1 veya altını hedefleyin ya da .NET SDK'nın .NET Core 2.2'yi destekleyen bir sürümünü kullanın.

Bu yüzden gerekli .NET Core sürümünü yükledim ve komut başarıyla çalıştı.


0

VS 2019'da EntityFramework 6.3.0 kullanan mevcut bir projede bu sorunu yaşadım. Bu projenin belirli bir süre içinde bazı tuhaf sürüm değişiklikleri yapıldı ve hiçbir şey çalışmasını sağlayamadı. Burada listelenen her öneriyi şanssız denediğime inanıyorum.

Son olarak, EntityFramework yayım öncesi sürüme güncelleme (şu anda 6.4.0-preview3-19553-01) Paket Yöneticisi Konsolu bu çalıştırarak, sorunu çözmek yaptı: Update-Package EntityFramework -prerelease. Umarım bu sürüm önümüzdeki birkaç hafta içinde canlı yayınlandığında düzgün çalışacaktır.


0

Microsoft.EntityFrameworkCore.Tools'u yükleyin benim için sorunu çözdü, nuget paketleri kullandı


0

Benim durumumda aşağıdakileri yaptım: - Paket Yöneticisi Konsolu'nun üstündeki "Geri Yükle" düğmesine tıklayarak eksik NuGet paketlerini geri yükledim - Visual Studio'yu yeniden başlattım - çalıştırın update-database


-1

Benim için sorun Nuget versiyonuydu.

Nuget'i kaldırıp yeniden yükledim, ardından Visual Studio'yu yeniden başlattım ve sonra hepsi çalışmaya başladı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.