Paket Yöneticisi Konsolu Enable-Migrations CommandNotFoundException yalnızca belirli bir VS projesinde


122

Yeni bir projede 'Enable-Migrations' komutunu çalıştırmayı denedim ve mesajı aldım:

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

Ancak diğer tüm projelerde komut gayet iyi çalışıyor.

Bu neden oluyor?

BTW, VS2010 Professional SP1 kullanıyorum

DÜZENLEME: Install-Package EntityFramework -IncludePrerelease komutuyla yeniden yükledim ve sorun ortadan kalktı .


2
Merhaba, lütfen çözümünüzü bir yanıt olarak ekleyin ve kabul edildi olarak işaretleyin (bunu 2 gün sonra yapabilirsiniz), böylece yanıtlanmamış soru olarak görünmez.
Gert Arnold

1
Ben de aynı sorunu yaşıyorum. Ancak bu başlıktaki hiçbir şey işe yaramıyor gibi görünüyor. Görsel stüdyonun tamamını yeniden mi yüklediniz yoksa bu komutu mı çalıştırdınız?
ObedMarsh

Sadece komutu çalıştırdım ...
Eduardo Brites

2
Ne yazık ki, bu komutun sonuçları benim için sadece "'EntityFramework 6.1.0' zaten kurulu." ve hala geçerli komut olarak eklenti geçişi veya geçişi etkinleştirmeyi içermez.
Mir

Kurulum Paketi alıyorum: 'EntityFramework' paketi bulunamıyor. çözümünüzü denediğimde
Naguib Ihab

Yanıtlar:


85

Yalnızca Visual Studio'yu yeniden başlatmak benim için çalıştı. Paket vb. Yüklemeye gerek yok


8
VS'yi

5
Yeniden başlatma, Visual Studio 2015 için çalıştı. Paketleri yüklemeye gerek yok.
jonas

5
Bir not - Paketlerimi her yüklemem gerektiğinde bu sorunu yaşıyorum (yeni bir depo çekme gibi). Görünüşe göre VS'nin yeni paketlerle doğru şekilde başlatılmasından önce VS'nin yeniden başlatılması gerekiyor (VS Community 2015 Güncelleme 1)
Jono

2
Yeni repo çekimi de buna benim için neden oldu. Yeniden başlat sorunu çözdü. (VS Enterprise 2015 Güncellemesi 2).
Mike Rouse

84

Şu komutla yeniden yükledim: Install-Package EntityFramework -IncludePrerelease ve sorun ortadan kalktı.


13
Çözümümü oluşturdum ve ardından VS 2013'ü kapatıp yeniden açtım ve işe yaradı
Luke

EntityFrameworkYalnızca .net framework 4.0 ve 4.5'i desteklediğini unutmayın . Yani, .net framework 4.6 veya daha yüksek kullanıyorsanız, çalışmaz.
Tan

1
@ TânNguyễn - bu nedir? My EntityFramework 6.1.3
NuGet 4.6.x projemde

Yeniden başlatma bunu benim için yapmadı, ama bu yaptı.
robbpriestley

29

Bu sorun, Entity Framework yüklü olmadığımız için ortaya çıkıyor. Lütfen aşağıdaki komutu kullanarak Entity Framework'ü kurun.

Install-Package EntityFramework -IncludePrerelease

Kurulduktan sonra, paket yöneticisi konsolu varsayılan proje açılır menüsünde projeyi seçin.

Projenizdeki en az bir sınıfın veri bağlamından miras aldığından emin olun, aksi takdirde aşağıdaki sınıfı kullanın:

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

Bunu yapmazsak başka bir hata alacağız:

No context type was found in the assembly

Bunları tamamladıktan sonra koşabilirsiniz

enable-migrations

Benim için çalıştı. Teşekkürler.
Najeeb

Bugün VS 2019 ile benim için çalıştı.
perezdr

17

Visual Studio'yu yönetici ayrıcalığıyla yeniden başlatmak sorunu benim için çözdü.


13

Visual Studio'yu yönetici olarak çalıştırdığınızdan emin olun.


1
VS'yi yönetici olarak çalıştırıyordum. O zamanlar paketi her projeye yüklememiz gerektiğini bilmiyordum.
Eduardo Brites

12

VS 2019 Preview, .Net Core ve EntityFramework Core ile aynı sorunu yaşadım.

NuGet Microsoft.EntityFrameworkCore.Toolsve Microsoft.EntityFrameworkCore.Design. Bir kez yapıldığında, bir cazibe gibi çalıştı.


10

Önce "Install-Package EntityFramework -IncludePrerelease" ve ardından Visual Studio'nun Yönetici olarak Yeniden Başlatılması benim için birlikte çalıştı.


3

Visual Studio 2012'de de aynı hatayı aldım. NuGet'i kaldırmak zorunda kaldı (Araçlar> Uzantılar ve Güncellemeler> Yüklendi> Tümü: NuGet Paket Yöneticisi: Kaldır düğmesi). Ardından Visual Studio kapatıldı. Daha sonra Visual Studio yeniden açıldı ve NuGet yeniden yüklendi (Araçlar> Uzantılar ve Güncellemeler> Çevrimiçi> Visual Studio Galerisi: NuGet Paket Yöneticisi: İndir düğmesi). Ardından aşağıdaki pencerelerde: Yükle düğmesine ve ardından kapat düğmesine tıklayın. Ardından, Visual Studio'yu kapatıp yeniden açın.


Bu benim için işe yaradı, bence bu, ön sürüme yükseltmeyi zorlamaktan daha iyi bir seçenek.
OverMars

2

Bu semptomu benim için düzelten şey (VS2013), EF paketini Nuget ile kaldırıp yeniden yüklemektir. Csproj dosyasındaki fark bunu değiştirdi ...

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

...bunun içine...

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

Henüz nedenini tam olarak anlamıyorum ama en azından işe yaradı.


Add-migration / update-database vb. İle ilgili sorunlar yaşadım. Tüm çözümleri denedim, ancak EF'i kaldırmayı ve yeniden yüklemeyi çoktan denediğimden emin olsam da işe yaramadı. Şimdiye kadar ne zaman oldu. EF paketleriyle ilk kez sorun yaşıyorum. :(
GeoffM

2

.NET Core'da, paket yöneticisi konsoluna aşağıdakileri girerek kabul edilen yanıtta açıklananla aynı çözünürlüğe ulaşabildim:

Install-Package EntityFramework.Core -Pre

2

Aynı sorunu yaşadım ve diğer insanlar tarafından sağlanan çözümün çoğunu denedim ancak aşağıdaki adımlarla benim için çalıştı. VS 2017 var.

Adımlar:

Install-Package EntityFramework -IncludePrerelease

sonra bir sınıf oluşturun

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

ve son yürütmede

Enable-Migrations -EnableAutomaticMigrations

Benim için işe yaramayan şey:

: VS yeniden başlatılıyor.

: yalnızca -EnableAutomaticMigrations içermeyen "Enable-Migrations" komutu.

: Nuget Paket Yöneticisini geri yükleme veya güncelleme.

Başlangıçtaki orijinal hatam

/ * 'Enable-migration' terimi bir cmdlet, fonksiyon, komut dosyası dosyası veya çalıştırılabilir program adı olarak tanınmaz. Adın yazımını kontrol edin veya bir yol dahil edilmişse, yolun doğru olduğunu doğrulayın ve tekrar deneyin. Satırda: 1 karakter: 1 + geçişi etkinleştir + ~~~~~~~~~~~~~ ~~ + CategoryInfo: ObjectNotFound: (enable-migration: String) [], CommandNotFoundException * /


1

Aynı sorunu yaşadım ve bunun proje yolundaki bazı karakterlerden kaynaklandığını buldum, örneğin [veya] Proje yolunu düzelttim ve iyi çalıştı!


1

Enable-Migrations -EnableAutomaticMigrations


1
Birkaç çözümü denedikten sonra, çözümünüz benim için iyi çalışıyor.
nguyenhoai890

Benim için Visual Studio Community 2015'te çalıştı. Teşekkürler (Diğer tüm çözümler benim durumumda başarısız oldu)
fedeteka

1

Zaten geçiş klasörüm olduğundan, Visual Studio'yu yeniden başlattım ve paket yöneticisi konsolunda Update-Database -verbose komutunu çalıştırdım. Bu benim için çalıştı


1

Yukarıdaki tüm önerileri denedim ama hiçbir şey benim için işe yaramadı, sonra güncelledim Nuget Package Managerve işe yaradı ..


1
  1. Aşağıdaki komutu kullanarak Varlık çerçevesini mevcut projeye yükleyin: PM> Install-Package EntityFramework -IncludePrerelease

  2. Aşağıda belirtildiği gibi Model klasörüne bir "MyDBContext" sınıfı ekleyin:

    genel sınıf MyDBContext: DbContext {public MyDBContext () {}}

  3. Şimdi aşağıdaki komutla mevcut proje için geçişleri etkinleştirin: PM> enable-migrations


1

yönetici olarak çalıştır vs = >> aç Projeyi aç

-> On the Package manager Console

Enable-migration
add-migration migrationName
update-database


0

Çözümde birden fazla projem vardı, ancak doğru Varsayılan Proje setine sahiptim, bu yüzden işe yaraması gerektiğini düşündüm.

Sonunda, -StartupProject MyProjectNameseçeneği komuta eklemek zorunda kaldım


0

Bu çözümlerin hiçbiri benim için işe yaramadı. Benim çözümüm silmek packages/EntityFramework.6.1.3veRestore NuGet Packages

Bunun packages/EntityFramework.6.1.3/tools/EntityFramework.psd1eksik olduğunu fark ettim , bu yüzden bu olası bir nedendi. Hiçbir fikrim olmasa da ilk etapta nasıl kaldırıldığını.


0

"EntityFramework" yapılandırma bölümünün var olup olmadığını ve .config dosyanızda açıklanıp açıklanmadığını kontrol edin

<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

Entity Framework sürümünü kontrol edin.

6.3 ise, 6.2'ye düşürün ve gayet iyi çalışmalıdır


2
Lütfen bunu detaylandırın. Neden sadece bu sorunu düzeltmek için birisi kurulu kitaplık sürümünü düşürmeli?
andrensairr

0

Asp.net çekirdeğinde de aynı sorunu yaşadım VS2019'da yaşadım

Bu sorunu çözdü:

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

Farklı olması durumunda veritabanı projenize Paket Yöneticisi Konsolunda varsayılan projeyi ayarlamayı unutmayın.

Taşıma işlemleri yürütülürken varsayılan proje de bir rol oynuyor gibi görünüyor. Daha sonraki bir adımda bunu ana başlangıç ​​projeme yüklememe yardımcı oldu (EF veritabanı projesine değil):

Install-Package Microsoft.EntityFrameworkCore.Design

8 yıl önce .net çekirdeğinin var olduğunu sanmıyorum.
Temmuz'dan

0

MVC Web projesi oluşturursanız Projeyi oluştururken Kimlik Doğrulama'yı seçmelisiniz. varsayılan olarak seçilmemiştir. görüntü açıklamasını buraya girin


0

6.2'ye düşürmeme yardımcı oldu.
.NET Framework sürüm 4.6.1
Eski biçimdeki proje (.NET Standard olmayan)
Visual Studio, ilk geçiş için Yönetici haklarıyla açık olmalıdır.
Sanırım 6.2 üstü sürümlü EF en son .NET Framework gerektiriyor.


-4

Solution Explorer penceresinde projenin açık olup olmadığını kontrol edin.

Sorununuzun nedeni bu olabilir.

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.