पैकेज प्रबंधक कंसोल सक्षम-माइग्रेशन CommandNotFoundException केवल एक विशिष्ट VS प्रोजेक्ट में


122

मैंने एक नए प्रोजेक्ट में कमांड 'Enable-Migrations' चलाने की कोशिश की और मुझे संदेश मिला:

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

लेकिन अन्य सभी परियोजनाओं में कमांड ठीक चलता है।

ये क्यों हो रहा है?

BTW, मैं VS2010 व्यावसायिक SP1 का उपयोग कर रहा हूं

संपादित करें: मैंने कमोड के साथ पुनः इंस्टॉल किया : इंस्टाल-पैकेज एंटिटीफ्रेमवर्क -इन्क्लूडप्रिलेज और समस्या दूर हो गई।


2
नमस्ते, कृपया अपने समाधान को उत्तर के रूप में जोड़ें और इसे स्वीकृत के रूप में चिह्नित करें (जिसे आप 2 दिन बाद कर सकते हैं), इसलिए यह अनुत्तरित प्रश्न के रूप में दिखाई नहीं देगा।
गर्ट अर्नोल्ड

1
मैं यह एक ही मुद्दा रहा हूँ। लेकिन इस सूत्र में कोई भी चीज काम नहीं करती है। क्या आपने पूरे दृश्य स्टूडियो को फिर से स्थापित किया है या आपने बस उस कमांड को चलाया है?
19

मैंने बस कमांड चलाई ...
एडुआर्डो ब्राइट्स

2
अफसोस की बात है, मेरे लिए उस आदेश के परिणाम सिर्फ "" EntityFramework 6.1.0 'पहले से ही स्थापित हैं। " और इसके पास अभी भी वैध कमांड के रूप में ऐड-माइग्रेशन या सक्षम-माइग्रेशन नहीं है।
मीर

मुझे Install-Package मिल रहा है: पैकेज 'EntityFramework' खोजने में असमर्थ। जब मैं आपके समाधान की कोशिश करता
हूं

जवाबों:


85

बस फिर से शुरू करने के लिए विजुअल स्टूडियो ने मेरे लिए काम किया। पैकेज आदि को स्थापित करने की आवश्यकता नहीं है।


8
वीएस को फिर से शुरू करना मेरे लिए भी काम कर गया, मुझे खुशी है कि मैंने EntityFramework
SM3RKY

5
विज़ुअल स्टूडियो 2015 के लिए काम करना शुरू करना। पैकेज स्थापित करने की आवश्यकता नहीं है।
जोंस २

5
एक नोट - मेरे पास यह समस्या है कि मुझे हर बार अपने पैकेजों को स्थापित करना होगा (जैसे एक ताजा रेपो पुल)। लगता है कि वीएस को नए पैकेज (वीएस कम्युनिटी 2015 अपडेट 1) के साथ ठीक से शुरू करने से पहले फिर से शुरू करने की आवश्यकता है
जोनो

2
ताजा रेपो पुल भी मेरे लिए इसका कारण बना। इसे फिर से शुरू करें। (वीएस एंटरप्राइज 2015 अपडेट 2)।
माइक राऊस

84

मैंने कमांण्ड के साथ पुनः स्थापित किया: इंस्टाल-पैकेज एंटिटीफ्रेमवर्क-इनक्लूडप्रिलेज और समस्या दूर हो गई।


13
मैंने अपना समाधान बनाया और फिर बंद कर दिया और वीएस 2013 को फिर से खोल दिया और यह काम किया
ल्यूक

ध्यान दें कि EntityFrameworkकेवल .net फ्रेमवर्क 4.0 और 4.5 का समर्थन करता है। इसलिए, यदि आप .net फ्रेमवर्क 4.6 या उच्चतर का उपयोग कर रहे हैं, तो यह काम नहीं करता है।
ताँगे

1
@ TânNguyễn - वह क्या है? मेरा EntityFramework 6.1.3 NuGet मेरी 4.6.x परियोजना में ठीक काम कर रहा है
bkwdesign

रिस्टार्ट ने मेरे लिए ऐसा नहीं किया, लेकिन यह किया।
रॉबप्रियास्टली

29

यह समस्या इसलिए हो रही है क्योंकि हमारे पास Entity Framework स्थापित नहीं है। कृपया नीचे कमांड का उपयोग करके एंटिटी फ्रेमवर्क स्थापित करें।

Install-Package EntityFramework -IncludePrerelease

एक बार स्थापित होने के बाद, पैकेज मैनजर कंसोल डिफॉल्ट प्रोजेक्ट ड्रॉप डाउन में प्रोजेक्ट चुनें।

सुनिश्चित करें कि आपकी परियोजना में कम से कम एक वर्ग डेटा के संदर्भ से विरासत में मिला है, अन्यथा निम्न वर्ग का उपयोग करें:

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

यदि हम ऐसा नहीं करते हैं तो हमें एक और त्रुटि मिलेगी:

No context type was found in the assembly

इन चीजों को पूरा करने के बाद आप दौड़ सकते हैं

enable-migrations

मेरे लिए काम किया। धन्यवाद।
नजीब

मेरे लिए आज वी.एस. 2019 के साथ काम किया।
पेरेसड्र

17

व्यवस्थापक विशेषाधिकार के साथ Visual Studio को पुनरारंभ करना मेरे लिए समस्या हल हो गई।


13

सुनिश्चित करें कि आप विजुअल स्टूडियो को एक व्यवस्थापक के रूप में चला रहे हैं।


1
मैं VS को एडमिनिस्ट्रेटर के रूप में चला रहा था। उस समय मुझे नहीं पता था कि हमें प्रत्येक प्रोजेक्ट पर पैकेज स्थापित करने की आवश्यकता है।
एडुआर्डो ब्रिट्स

12

मेरे पास वीएस 2019 पूर्वावलोकन, .नेट कोर, और एंटिटीफ्रेमवर्क कोर के साथ एक ही मुद्दा था।

मुझे पता है कि मुझे NuGet Microsoft.EntityFrameworkCore.Toolsऔर के माध्यम से स्थापित करना था Microsoft.EntityFrameworkCore.Design। एक बार जो किया गया था, वह एक आकर्षण की तरह काम करता था।


10

पहले "इंस्टॉल-पैकेज EntityFramework -IncludePrerelease" और फिर एक प्रशासक के रूप में विज़ुअल स्टूडियो को फिर से शुरू करना मेरे लिए एक साथ काम किया।


3

विजुअल स्टूडियो 2012 में मुझे वही त्रुटि मिली थी। NuGet (टूल> एक्सटेंशन और अपडेट> इंस्टॉल किया गया> सभी: NuGet पैकेज मैनेजर: अनइंस्टॉल बटन) को अनइंस्टॉल करना पड़ा। फिर विजुअल स्टूडियो को बंद कर दिया। फिर विजुअल स्टूडियो को फिर से खोल दिया और NuGet (टूल> एक्सटेंशन और अपडेट> ऑनलाइन> विजुअल स्टूडियो गैलरी: NuGet पैकेज मैनेजर: डाउनलोड बटन) को फिर से इंस्टॉल किया। फिर निम्न विंडो में: इंस्टाल बटन पर क्लिक करें, फिर क्लोज बटन पर क्लिक करें। फिर Visual Studio को बंद करें और फिर से खोलें।


यह मेरे लिए काम कर रहा है, मुझे लगता है कि इसके रिलीज से पहले रिलीज करने के लिए एक बेहतर विकल्प है।
ओवरमर

2

मेरे लिए यह लक्षण (VS2013) तय हो गया है तो Nuget के साथ EF पैकेज को फिर से इंस्टॉल करना है। Csproj फ़ाइल में अंतर ने इसे बदल दिया ...

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

...इस मामले में...

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

मुझे पूरी तरह से समझ में नहीं आया कि अभी तक क्यों, लेकिन इसने कम से कम काम किया।


मुझे ऐड-माइग्रेशन / अपडेट-डेटाबेस आदि की समस्या थी, मैंने सभी समाधानों की कोशिश की, लेकिन मुझे यकीन है कि मैंने पहले से ही ईएफ को अनइंस्टॉल और रीइंस्टॉल करने की कोशिश की थी, लेकिन यह काम नहीं किया। अब तक जब यह किया था। यह पहली बार नहीं है जब मुझे EF पैकेजों की समस्या हुई है। :(
ज्योफएम

2

.NET कोर में, मैं पैकेज मैनेजर कंसोल में निम्नलिखित दर्ज करके स्वीकार किए गए उत्तर में वर्णित समान रिज़ॉल्यूशन तक पहुंचने में सक्षम था:

Install-Package EntityFramework.Core -Pre

2

मेरे पास एक ही मुद्दा था और मैंने अन्य लोगों द्वारा प्रदान किए गए अधिकांश समाधान की कोशिश की लेकिन यह मेरे लिए नीचे दिए गए चरणों के साथ काम करता है। मेरे पास वीएस 2017 है।

कदम:

Install-Package EntityFramework -IncludePrerelease

फिर एक वर्ग बनाएं

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

और अंतिम निष्पादन में

Enable-Migrations -EnableAutomaticMigrations

मेरे लिए क्या काम नहीं आया:

: वी.एस.

: केवल "सक्षम-माइग्रेशन" कमांड है, जो बिना -EnableAutomaticMigrations के है।

: Nuget पैकेज मैनेजर को पुनर्स्थापित करना या अपडेट करना।

शुरुआत में मेरी मूल त्रुटि थी

/ * शब्द 'इनेबल-माइग्रेशन' को एक cmdlet, फ़ंक्शन, स्क्रिप्ट फ़ाइल या ऑपरेबल प्रोग्राम के नाम के रूप में मान्यता प्राप्त नहीं है। नाम की वर्तनी की जाँच करें, या यदि कोई पथ शामिल किया गया था, तो सत्यापित करें कि पथ सही है और पुन: प्रयास करें। पंक्ति: 1 char: 1 + सक्षम-माइग्रेशन + ~~~~~~~~~~~~~~ ~~ + CategoryInfo: ObjectNotFound: (सक्षम-माइग्रेशन: स्ट्रिंग) [], CommandNotFoundception * /


1

मुझे भी यही समस्या थी और मैंने पाया कि यह प्रोजेक्ट पथ के कुछ पात्रों की वजह से है जैसे कि [या] मैंने प्रोजेक्ट पथ को सही किया और यह ठीक काम किया!


1

Enable-Migrations -EnableAutomaticMigrations


1
कई समाधान आज़माने के बाद, आपका समाधान मेरे लिए अच्छा काम करता है।
गुयेनहोइइ

विजुअल स्टूडियो कम्युनिटी 2015 पर मेरे लिए काम किया। धन्यवाद (मेरे मामले में अन्य सभी समाधान विफल)
फेडेटेका

1

चूंकि मेरे पास पहले से ही माइग्रेशन फ़ोल्डर था, इसलिए मैंने विज़ुअल स्टूडियो को फिर से शुरू किया और पैकेज मैनेजर कंसोल में अपडेट-डेटाबेस -वर्बोज़ चलाया। मेरे लिए यही काम किया


1

मैंने उपरोक्त सभी सुझावों की कोशिश की लेकिन मेरे लिए कुछ भी काम नहीं किया तब मैंने अपडेट किया Nuget Package Managerऔर यह काम किया ।।


1
  1. नीचे दिए गए आदेश का उपयोग करके वर्तमान परियोजना में इकाई ढांचा स्थापित करें: पीएम> इंस्टॉल-पैकेज EntityFramework -IncludePererease

  2. नीचे दिए गए मॉडल फ़ोल्डर में एक वर्ग "MyDBContext" जोड़ें:

    सार्वजनिक वर्ग MyDBContext: DbContext {सार्वजनिक MyDBContext () {}}

  3. अब नीचे दिए गए आदेश के साथ वर्तमान परियोजना के लिए माइग्रेशन सक्षम करें: PM> सक्षम-माइग्रेशन


1

व्यवस्थापक के रूप में चलाएं = = >> परियोजना खोलें

-> On the Package manager Console

Enable-migration
add-migration migrationName
update-database


0

मेरे पास समाधान में कई परियोजनाएं थीं, लेकिन मेरे पास सही डिफ़ॉल्ट प्रोजेक्ट सेट था, इसलिए मैंने सोचा कि यह काम करना चाहिए।

अंत में, मुझे -StartupProject MyProjectNameकमांड में विकल्प जोड़ना पड़ा


0

इनमें से किसी भी समाधान ने मेरे लिए काम नहीं किया। मेरा समाधान हटाना था packages/EntityFramework.6.1.3औरRestore NuGet Packages

मैंने देखा कि packages/EntityFramework.6.1.3/tools/EntityFramework.psd1वह गायब था, इसलिए यह एक संभावित कारण था। यह पहली जगह में कैसे हटा दिया, हालांकि मुझे कोई सुराग नहीं है।


0

जांचें कि क्या कॉन्फिगर सेक्शन "एंट्रीफ्रैमवर्क" मौजूद है और आपकी .config फाइल में वर्णित है

<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

एंटिटी फ्रेमवर्क के संस्करण की जाँच करें।

अगर यह 6.3 है, तो इसे 6.2 पर डाउनग्रेड करें और इसे ठीक काम करना चाहिए


2
कृपया इस पर विस्तार से बताएं। इस समस्या को ठीक करने के लिए किसी को स्थापित लाइब्रेरी संस्करण को डाउनग्रेड क्यों करना चाहिए?
andrensairr

0

मैं बस asp.net कोर VS2019 में एक ही समस्या थी

इससे यह हल हो गया:

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

पैकेज मैनेजर कंसोल में डिफॉल्ट प्रोजेक्ट सेट करने की भूल न करें, अगर यह भिन्न हो तो आपके डेटाबेस प्रोजेक्ट में कंसोल।

माइग्रेशन निष्पादित करते समय डिफ़ॉल्ट प्रोजेक्ट भी एक भूमिका निभाता है। बाद के चरण में इसे मेरी मुख्य स्टार्टअप परियोजना (ईएफ डेटाबेस परियोजना नहीं) में स्थापित करने में मदद मिली:

Install-Package Microsoft.EntityFrameworkCore.Design

मुझे नहीं लगता कि 8 साल पहले .net कोर मौजूद है।
5

0

यदि आप MVC वेब प्रोजेक्ट बनाते हैं, तो आपको प्रोजेक्ट बनाते समय प्रमाणीकरण का चयन करना चाहिए। चूक से चयनित नहीं है। यहाँ छवि विवरण दर्ज करें


0

डाउनग्रेड 6.2 करने के लिए मेरी मदद की।
.NET फ्रेमवर्क संस्करण 4.6.1
पुराने प्रारूप (गैर .NET मानक) प्रोजेक्ट में
Visual Studio प्रारंभिक माइग्रेशन के लिए व्यवस्थापक अधिकारों के साथ खुला होना चाहिए।
मुझे लगता है कि 6.2 से ऊपर के संस्करण वाले EF को नवीनतम .NET फ्रेमवर्क की आवश्यकता है।


-4

जाँचें कि क्या प्रोजेक्ट सोल्यूशन एक्सप्लोरर विंडो में खुला है।

यह आपकी समस्या का कारण हो सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.