शब्द "ऐड-माइग्रेशन" मान्यता प्राप्त नहीं है


116

मैं इस MSDN ट्यूटोरियल का उपयोग VS2015 कमांड को चलाने के लिए कर रहा हूं PM> Add-Migration MyFirstMigration -context BloggingContextजो कि कल सफलतापूर्वक चली थी लेकिन आज यह निम्नलिखित त्रुटि दे रही है जो अन्य उपयोगकर्ताओं द्वारा यहां भी इंगित की गई है । मैं भी समाधान एक्सप्लोरर से पलायन फ़ोल्डर और SQL Express 2014 on Win 8.1इसी त्रुटि से इसी DB हटा दिया । अगर मैं दौड़ता Add-Migration MyFirstMigrationहूं तो भी मुझे वही त्रुटि मिलती है:

Add-Migration : The term 'Add-Migration' 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, verify that the path is correct and try again.
At line:1 char:1
+ Add-Migration MyFirstMigration -context BloggingContext
+ ~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Add-Migration:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

नोट : मैं ASP.NET Core 1.0 और VS2015 के नवीनतम संस्करण का उपयोग कर रहा हूं - अपडेट 3 27 जून 2016 को जारी किया गया।

अपडेट करें

कमांड विंडो का उपयोग करते समय निम्नलिखित कमांड विंडोज एक्सप्लोरर में प्रोजेक्ट डायरेक्टरी से ठीक काम करती हैं:

> dotnet ef migrations add MyFirstMigration --context BloggingContext
> dotnet ef database update --context BloggingContext

अद्यतन 2a

निम्नलिखित प्रोजेक्ट है। जेसन फ़ाइल:

{
  "userSecretsId": "aspnet-ASPCore_RTM_CodeFirst_test-bef835d9-9831-41a8-bc3a-cd2f1477a880",

  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.0",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
    "Microsoft.EntityFrameworkCore.SqlServer.Design": {
      "version": "1.0.0",
      "type": "build"
    },
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0",
    "Microsoft.Extensions.Logging": "1.0.0",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Logging.Debug": "1.0.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    }
  },

  "tools": {
    "BundlerMinifier.Core": "2.0.238",
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.Extensions.SecretManager.Tools": "1.0.0-preview2-final",
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview2-final",
      "imports": [
        "portable-net45+win8"
      ]
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "Views",
      "Areas/**/Views",
      "appsettings.json",
      "web.config"
    ]
  },

  "scripts": {
    "prepublish": [ "bower install", "dotnet bundle" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

कृपया टैग को शीर्षक में न रखें
त्सेंग

कृपया अपने प्रोजेक्ट को लिखें। अगर मैं आपके पैकेज देखना चाहता हूं
बासम अलुगिली

@BassamAlugili आपके अनुरोध के अनुसार, मैंने peoject.json फ़ाइल के संबंधित अनुभाग को जोड़ने के लिए अपनी पोस्ट में एक अद्यतन 2 जोड़ा है। कृपया मुझे बताएं कि क्या आपको अधिक जानकारी चाहिए
nam

आपको @briceIam (EF टीम) से जवाब मिला मुझे लगता है कि यह काम करेगा!
बासम अलुगिली

@BassamAlugili मैंने प्रोजेक्ट की पूरी सामग्री जोड़ दी है। अपनी पोस्ट के UPDATE 2 अनुभाग में फ़ाइल को खोलें। कृपया प्रतिक्रिया के तहत मेरी टिप्पणी देखें @bricelam। मुझे क्या याद आ रही है?
नमस्ते

जवाबों:


231

यह बहुत आसान हैं।

बस Microsoft.EntityFrameworkCore.Toolsएनगेट से पैकेज स्थापित करें :

Microsoft-EntityFrameworkCore.Tools -Version 3.1.5 पैकेज स्थापित करें

आप इस लिंक का उपयोग नवीनतम संस्करण को स्थापित करने के लिए भी कर सकते हैं: Nuget पैकेज लिंक

.NET CLI कमांड:

dotnet add package Microsoft.EntityFrameworkCore.Tools

मैंने संस्करण 2.2.6 स्थापित किया है क्योंकि मैं अभी भी विज़ुअल स्टूडियो 2017 का उपयोग कर रहा हूं।
ब्लू

बहुत बहुत धन्यवाद, यह सामान्य गलती है जो हर कोई करता है
नितेश शॉ

1
मुझे दृश्य स्टूडियो को पुनः आरंभ करने की भी आवश्यकता है
Liviu Sosu

48

निम्नलिखित चरणों का प्रयास करें:

1) project.jsonफ़ाइल खोलें और सभी Microsoft.EntityFrameworkCore.Tools निर्भरता और उपकरण वर्गों से संदर्भ निकालें

2) बंद पैकेज प्रबंधक कंसोल ( PMC ) और Visual Studio को पुनरारंभ करें

3) निर्भरता अनुभाग के तहत जोड़ें :

 "Microsoft.EntityFrameworkCore.Tools": {
  "version": "1.0.0-preview2-final",
  "type": "build"
 }

4) टूल्स सेक्शन के तहत जोड़ें

"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"

5) पुनः प्रारंभ फिर से दृश्य स्टूडियो 2015

6) ओपन पीएमसी और प्रकार

Add-Migration $Your_First_Migration_Name$

ऐसा इसलिए होता है क्योंकि जब विजुअल स्टूडियो शुरू हो रहा होता है तो पीएमसी उपकरण को पहचानता है।


5
मैं मुश्किल से VS2015 पर कोडिंग के एक घंटे के माध्यम से प्राप्त कर सकता हूं बिना कुछ पुनः आरंभ / पुनः स्थापित किए बिना ...
रयान मर्फी

37

सुनिश्चित करें Microsoft.EntityFrameworkCore.Toolsकि dependenciesआपके अनुभाग में संदर्भित है project.json। NuGet पैकेज प्रबंधक कमांड को से लोड नहीं करेगाtools अनुभाग । ( नूगेट / होम # 3023 देखें )

{
  "dependencies": {
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    }
  }
}

2
मैंने अपनी पोस्ट की UPDATE 2 में संपूर्ण प्रोजेक्ट.json फ़ाइल सामग्री की प्रतिलिपि बनाई है। Microsoft.EntityFrameworkCore.Toolsअंदर निर्भरता खंड के रूप में अच्छी तरह से है। Add-Migrationऔर Update-Databaseआदेश, के रूप में ट्यूटोरियल में निर्देश दिए पहले रात काम किया। लेकिन जब मैंने अपने मॉडल में मामूली बदलाव करने के बाद अगली सुबह उन्हें आजमाया और इन आदेशों की फिर से कोशिश की तो उन्होंने मेरे पोस्ट में वर्णित त्रुटि संदेश दिया। मैंने SQL सर्वर से माइग्रेशन फ़ोल्डर और संबंधित डेटाबेस को भी हटा दिया था, लेकिन मुझे इन कमांड को चलाने के बाद एक ही त्रुटि संदेश मिला। मुझे क्या याद आ रही है?
नमस्ते

मेरे पास भी ये लक्षण हैं। मैं विज़ुअल स्टूडियो 2015 अपडेट 3
Kolya_Net

प्रजनन योग्य कदम और पर्यावरण की बहुत सारी जानकारी के साथ NuGet पर एक बग दर्ज करने का प्रयास करें। मैंने टीम से पहले इस क्षेत्र में मुद्दों का उल्लेख किया है, लेकिन वे कभी भी उन्हें हटाने में सक्षम नहीं हैं।
ब्रिकेलम

1
अजीब, यह मेरी समस्या को हल करता है अगर मैं इसे हटा देता हूं toolsऔर इसके बाद फिर से जोड़ता हूं । बस इसे ले जाने dependenciesसे निम्न त्रुटि संदेश आएगा: इस आदेश को निष्पादित नहीं किया जा सकता क्योंकि 'Microsoft.EntityFrameworkCore.Tools' प्रोजेक्ट 'src \ <आपकी परियोजना> में स्थापित नहीं है। Project.json में 'टूल्स' सेक्शन में 'Microsoft.EntityFrameworkCore.Tools' जोड़ें। अधिक जानकारी के लिए go.microsoft.com/fwlink/?LinkId=798221 देखें ।
थोरस्टेन वेस्टहाइडर

मैं VS2017 ASP.NET कोर का उपयोग कर रहा हूं और उसी समस्या थी। इस जवाब ने इसे भी हल कर दिया!
वेस्टरलंड।

14

एक ही मुद्दा ... निम्नलिखित द्वारा दांग द्वारा हल किया गया

1.) क्लोज पीएम मैनेजर 2.) क्लोज विजुअल स्टूडियो 3.) ओपन विजुअल स्टूडियो 4.) ओपन पीएम मैनेजर

लगता है कि चाल वीएस को बंद करने से पहले पीएम मैनेजर को बंद करना है


हाँ, पीएम और वीएस को फिर से लोड करना एक समाधान है, यह तब होता है जब हम नवीनतम विज़ुअल स्टूडियो में प्रोजेक्ट खोलते हैं जो पहले पुराने एक में बनाया गया था। ऐसे कोड को खोलने से पहले, वी.एस. कुछ ऑटो ट्विक की कोशिश करता है। कुछ ट्विक को ठीक से देखा जा सकता है, केवल पीएम को पुनः आरंभ करके और वी.एस.
मलिक खलील

9

मुझे भी बस यही समस्या थी। मैंने बंद कर दिया और VS2015 खोला और इसने इस मुद्दे को "ठीक" कर दिया ...


बस वीएस 2019 सामुदायिक संस्करण में ऐसा हुआ था।
गाबे १

9

आपको यह जानना होगा कि आपका Entity-Frameworkसंस्करण क्या है । इसके बाद भी आपको जांचना होगाproject.json इन वर्गों की और नियंत्रण करना होगा:

में निर्भरता

जाँच:

Microsoft.EntityFrameworkCore.Tools": {
  "version": "1.0.0-preview2-final",
  "type": "build"
},

यह अनुभाग:

"संस्करण": "1.0.0-प्रीव्यू 2-फाइनल",

आपके के संस्करण से संबंधित है Entity-Framework और आपको इसे उसी के साथ बदलना होगा।

उसके बाद का दूसरा खंड proj.jsonयहाँ है, आप के Toolsअनुभाग में JSONहै:

"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",

इसके अलावा कोड का यह भाग आपके Entity-Frameworkऔर डिपेंडेंसी सेक्शन में कोड के अंतिम भाग से संबंधित है ।

नोट: इस मुद्दे को करने के CMDबाद आपको विज़ुअल स्टूडियो को बंद करना और फिर से शुरू करना चाहिए ।


6

मुझे क्या करना था ...

1) उपकरण -> नुगेट पैकेज मांगर -> पैकेज प्रबंधक सेटिंग्स

2) जनरल टैब

3) सभी NuGet कैश साफ़ करें

4) विज़ुअल स्टूडियो को पुनरारंभ करें



5

बस init Microsoft.EntityFrameworkCore.Tools का प्रयास करें। पीएम में अंजाम दिया

C:\Users\<username>\.nuget\packages\Microsoft.EntityFrameworkCore.Tools\1.0.0-preview2-final\tools\init.ps1.

इसने मुझे उसी समस्या में मदद की। साधनों का एक संस्करण भिन्न हो सकता है। यह इस बात पर निर्भर करता है कि आप अपने प्रोजेक्ट में क्या उपयोग करते हैं।


1
मेरे लिए, मैं एक सापेक्ष पथ का उपयोग करता हूं। \ package \ Microsoft.EntityFrameworkCore.Tools.1.1.0 \ tools \ init.ps1 यह इसलिए है क्योंकि PM की वर्तमान निर्देशिका पहले से ही समाधान निर्देशिका है, लेकिन मेरे लिए उपकरण पैकेज का हिस्सा है समाधान। व्यक्तिगत रूप से मुझे लगता है कि यह सबसे अच्छा समाधान है क्योंकि कोई पुनः आरंभ, संपादन, पुनर्स्थापना नहीं है। यह एक पल लेता है, और यह काम करता है।
विलियम लीडर

4

मैं उसी मुद्दे में भाग गया। मेरे ज्यादातर प्रोजेक्ट्स टूल में एक ही बात थी।

"tools": {
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
}

यह एक परियोजना पर सभी पर ठीक काम किया। मैंने टूल्स में एंट्री को बदल दिया

"tools": {
    "Microsoft.EntityFrameworkCore.Tools": {
    "version": "1.0.0-preview2-final",
    "type": "build"
  }
}

और फिर भागा dotnet restore। पुनर्स्थापना पूरी होने के बाद, Add-Migrationसामान्य रूप से काम किया।


2

मुझे एक ही समस्या थी और पाया गया कि यह सॉल्यूशन फाइल में एक विजुअल स्टूडियो वर्जनिंग समस्या थी।

मैं लक्ष्य कर रहा था:

VisualStudioVersion = 14.0.25123.0

लेकिन मुझे लक्ष्य बनाना था:

VisualStudioVersion = 14.0.25420.1

समाधान फ़ाइल में सीधे परिवर्तन करने के बाद, EF कोर cmdlets ने पैकेज मैनेजर कंसोल में काम करना शुरू कर दिया।


मदद करने की कोशिश करने के लिए धन्यवाद। मैं 14.0.25421.03 Update 3उस संस्करण का उपयोग कर रहा हूं जो आप उपयोग कर रहे हैं उससे भी अधिक है।
nam

2

ये मेरे द्वारा उठाए गए कदम हैं और इसने समस्या को हल कर दिया है

1) संस्करण 2 से 3 तक मेरे पावर शेल को अपग्रेड किया

2) PM कंसोल बंद

3) पुनरारंभ किया गया विज़ुअल स्टूडियो

4) PM कंसोल डॉटनेट रिस्टोर में नीचे की कमांड को रन करें

5) एड-माइग्रेशन InitialM माइग्रेशन

इसने काम कर दिया !!!


1

मुझे यह समस्या थी और पिछले समाधानों में से किसी ने भी मेरी मदद नहीं की। मेरी समस्या वास्तव में मेरे विंडोज 7 मशीन पर पावरशेल के पुराने संस्करण के कारण थी - एक बार जब मैंने पावरशेल 5 को अपडेट किया तो यह काम करना शुरू कर दिया।


1

पैकेज मैनेजर कंसोल (विज़ुअल स्टूडियो में) पर जाएं और कमांड के नीचे निष्पादित करें

C:\Users\<YOUR_USER>\.nuget\packages\Microsoft.EntityFrameworkCore.Tools\<YOUR_INSTALLED_VERSION>\tools\init.ps1


0

मुझे लगता है कि उत्तर को 2017 में अपडेट करने की आवश्यकता है, क्योंकि एमएस ने कुछ (परिवर्तन) किए हैं जो यहां विस्तृत हैं।

https://github.com/aspnet/EntityFramework/issues/7053

संक्षेप में, अब आपको नीचे दिए गए टूल सेक्शन में EntityFrameWorkCore.Tools.DotNet के संदर्भ की आवश्यकता होगी

"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0"

मैं भी काम कर रहे एक परियोजना पोस्ट किया है। समस्या में कुछ एक रन के नीचे एक फ़ाइल नीचे।

{
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.1",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.StaticFiles": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.1",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",
    "Microsoft.Extensions.Configuration.Json": "1.0.1",
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    }
  },

  "tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0"
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "web.config"
    ]
  },

  "scripts": {
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

आपको शायद विजुअल स्टूडियो को भी फिर से शुरू करना होगा।
फ्रांसिस

0

मैंने उपरोक्त सभी करने की कोशिश की और कोई भाग्य नहीं। मैंने नवीनतम .net कोर 2.0 पैकेज डाउनलोड किया और कमांड को फिर से चलाया और यह काम किया।


क्या .net कोर 2.0 अब स्थिर है, इसलिए इस परियोजना को अपग्रेड किया जा सकता 1.1.1है 2.0?
nam

1
.NET कोर 2.0 अंतिम रिलीज के रूप में कल 14 अगस्त 2017 को उपलब्ध है। blogs.msdn.microsoft.com/dotnet/2017/08/14/…
Tyrone

0

मेरे मामले में मैंने Nuget के माध्यम से निर्भरता को जोड़ा:

Microsoft.EntityFrameworkCore.Tools

और फिर पैकेज मैनेजर कंसोल के माध्यम से चलाएं:

add-migration Initial -Context "ContextName" -StartupProject "EntryProject.Name" -Project "MigrationProject.Name"

0

यह मेरे लिए काम कर रहा है: विजुअल स्टूडियो से क्लिक करें

उपकरण -> NuGet पैकेज मैनेजर -> पैकेज मैनेजर कंसोल

यहाँ छवि विवरण दर्ज करें

तब आप चला सकते हैं Add-Migration, उदाहरण के लिए:

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