ईएफ कोर उपकरण को अपडेट करने की आवश्यकता है


151

जब मैं वीएस 2017 पैकेज मैनेजर कंसोल में डॉटनेट एफई टूल्स का उपयोग करता हूं तो मुझे ईएफ कोर टूल्स को अपडेट करने की आवश्यकता के बारे में एक चेतावनी संदेश मिलता है:

PM> dotnet ef migrations list -s ../RideMonitorSite

The EF Core tools version '2.1.1-rtm-30846' is older than that of the runtime '2.1.2-rtm-30932'. Update the tools for the latest features and bug fixes.
20180831043252_Initial

लेकिन मेरी csproj फ़ाइल में यह प्रविष्टि है:

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.1.2" />
  </ItemGroup>

मैंने पुष्टि की है कि स्थापित संस्करण वास्तव में पुराना है:

PM> dotnet ef --version
Entity Framework Core .NET Command-line Tools
2.1.1-rtm-30846

तो मैं टूल्स को अपडेट करने के लिए क्या करूँ? BTW, मैंने अन्य जवाबों में देखा है कि एक आउट ऑफ डेट Global.json फ़ाइल इस समस्या का कारण बन सकती है। लेकिन मेरे पास समाधान में कहीं भी एक Global.json फ़ाइल नहीं है।


मुझे लगता है कि आप DotNetCliToolReference, github.com/aspnet/EntityFramework.Docs/issues/708
एंटोनियो

सुझाव के लिए धन्यवाद, @AntonioCampagnaro। लेकिन जब मैं उन संदर्भों को हटाता हूं, तब भी मुझे चेतावनी संदेश मिलता है।
मार्क ऑलबर्ट

1
पैकेज मैनेजर कंसोल द्वारा इसे अपग्रेड करें जैसे उत्तर
सेबस्टियन फेरारी

जवाबों:


312

विशिष्ट संस्करण के लिए कमांड लाइन, Cmd या PowerShell का उपयोग करें :

dotnet tool update --global dotnet-ef --version 3.1.0

या नवीनतम संस्करण उपयोग के लिए (पुनर्स्थापना के लिए भी काम करता है) :

dotnet tool update --global dotnet-ef


2
मेरे पास संस्करण 3.0.0 था और पहला कमांड मेरे लिए काम करता था, लेकिन दूसरा नहीं था। जब मैं किसी भी संस्करण को निर्दिष्ट करने वाले कमांड व्हाइटआउट को चला रहा हूं, तो मुझे निम्न त्रुटि मिली: टूल '
डॉटनेट

77
वे सिर्फ इस त्रुटि संदेश में क्यों नहीं डाल सकते हैं !
सिमोन_विवर

1
हमें शायद एक दिन एक जनसंपर्क करना चाहिए ... @Simon_Weaver
Riscie

13
बिल्ली, मैंने एक PR बनाया है: github.com/dotnet/efcore/pull/20792
Riscie

19

मैंने इस मुद्दे को जीथब पर विकास टीम को सौंप दिया । वर्तमान टूलिंग या नगेट पैकेज में यह एक ज्ञात समस्या है जो एक EF Core-संचालित AspNet कोर साइट बनाते समय लोड हो जाती है। इसे भविष्य के रिलीज में तय किए जाने का लक्ष्य है।

अभी के लिए, वर्कअराउंड केवल चेतावनी को अनदेखा करने के लिए है।

एक और वर्कअराउंड की पेशकश भी की जाती है, जिसमें एस्प्रेस कोर मेटाफ़ेज के संस्करण को स्पष्ट रूप से परिभाषित करने के लिए csproj फ़ाइल को शामिल करना शामिल है - यह 2.1.3 तक है जैसा कि मैं यह लिख रहा हूं - लेकिन मुझे काम करने के लिए वह तरीका नहीं मिला; मैं अभी भी चेतावनी संदेश प्राप्त करता रहा।


12

इसे आज़माएँ: इंस्टॉल-पैकेज Microsoft.EntityFrameworkCore.Tools

यदि समस्या अभी भी होती है, तो इसे भी निष्पादित करें: अपडेट-पैकेज Microsoft.EntityFrameworkCore.Tools


3
यह एक अच्छा सुझाव है, लेकिन मेरे लिए समस्या को ठीक नहीं किया ।
बनूना

मेरे लिए एक लापता पैकेज स्थापित किया, एक पीढ़ी की समस्या को हल किया, लेकिन चेतावनी बनी रहती है। किसी भी तरह से अच्छा सुझाव।
डिस्लेक्सिकनकोको

12

मेरे लिए काम करने वाला समाधान पैकेज मैनेजर कंसोल में निम्नलिखित कमांड चला रहा है:

PM> Install-Package Microsoft.EntityFrameworkCore -Version 2.1.11
PM> Install-Package Microsoft.EntityFrameworkCore.Tools -Version 2.1.11

सुनिश्चित करें कि संस्करण मेरे मामले में त्रुटि संदेश में एक से मेल खाता है मुझे निम्नलिखित त्रुटि मिली:

The EF Core tools version '2.1.1-rtm-30846' is older than that of the runtime '2.1.11-servicing-32099'. Update the tools for the latest features and bug fixes.

निम्नलिखित साइट से उपलब्ध संस्करणों की जाँच करें: https://www.nuget.org/packages/Microsoft.EntityFrameworkCore/


3

मेरा समाधान Microsoft https://www.nuget.org/packages/dotnet-ef से टूल डॉटनेट-एफई को स्थापित करना था । यह एक ही कमांड का उपयोग करता है लेकिन कोई चेतावनी नहीं। यह परिवर्तन डॉटनेट एई के बजाय डॉटनेट-एफई का उपयोग करना है।

और यदि आपके पास पहले से डॉटनेट-एफई स्थापित है तो उपयोग करें dotnet tool update --global dotnet-ef --version n.n.n(अपडेट करने के लिए अपने संस्करण को एनएनएन करें)


2

एक नया .NET कोर SDK v2.1.401 संस्करण स्थापित करें और फिर से जांच करें> dotnet ef --version। मेरे पास एक ही मुद्दा था और मेरे मामले में, यह काम किया। इसके अलावा, आपको Microsoft.EntityFrameworkCore.Tools.DotNet को जोड़ने की आवश्यकता नहीं है।


थैंक्स, @ सुरबनिअक। मैं पहले ही कर चुका हूँ। यह पता चला है कि यह मौजूदा नगेट पैकेज के साथ एक ज्ञात मुद्दा है, और इसे ठीक करने के लिए लक्षित किया गया है। वर्कअराउंड समस्या को केवल अनदेखा करना है, जैसा कि (कथित रूप से; इसने स्वयं की जाँच नहीं की है) कार्यक्षमता का कोई नुकसान नहीं है।
मार्क ओल्बर्ट

इस जवाब से मुझे भी मदद मिली। मैंने .NET कोर SDK v2.1.403 (लगभग एक ही संस्करण) स्थापित किया और चेतावनी अब दिखाई नहीं दी। आपको यह सुनिश्चित करने की आवश्यकता है कि .नेट कोर एसडीके और रनटाइम दोनों को इस तरह की चेतावनी से बचने के लिए अपडेट किया जाता है, कि संस्करण अद्यतित हैं।
Urls

मैंने .NET कोर SKD v2.1.701 (dotnet-sdk-2.1.701-win-x64.exe) स्थापित किया है, लेकिन मुझे अभी भी त्रुटि मिल रही है।
पाटे गुटी जूल

2

इस समस्या को हल करने के लिए आप निम्नलिखित तकनीकों में से एक का पालन कर सकते हैं:


  • तकनीक 1: पैकेज प्रबंधक कंसोल का उपयोग करना (विशेष रूप से Microsoft Visual Studio उपयोगकर्ता के लिए)
    PM >Install-Package Microsoft.EntityFrameworkCore.Tools -Version 2.1.2

  • तकनीक 2: .NET CLI
    > का उपयोग करनाdotnet add package Microsoft.EntityFrameworkCore.Tools --version 2.1.2

  • तकनीक 3: पैकेज संदर्भ का उपयोग करना

<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.2">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
  • तकनीक 4: पैकेट CLI
    > का उपयोग करनाpaket add Microsoft.EntityFrameworkCore.Tools --version 2.1.2

याद रखें: इस संस्करण का उपयोग करने के लिए आपको NuGet 3.6 या उच्चतर की आवश्यकता है।
संदर्भ लिंक: https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.Tools/2.1.2


1
  • मुद्दे पर ध्यान न दें
  • अपने <PackageReference शामिल न करें = "Microsoft अद्यतन करें। EntityFrameworkCore। उपकरण" संस्करण = "" />
  • मेरे मामले में, मैं 'अपडेट-डेटाबेस-कॉन्टेक्स्ट मायएलेमेंटकोटेक्स्ट' के साथ आगे बढ़ा और अब यह सब ठीक चल रहा है।

मुझे यह डिनो एस्पोसिटो की पुस्तक 'प्रोग्रामिंग एएसपी.नेट कोर' में मिला।

नोट नोट CLI टूलिंग का यह संस्करण वैसा नहीं है जैसा कि .NET कोर रनटाइम के अनुप्रयोग का उपयोग करेगा। रनटाइम संस्करण प्रोजेक्ट the le में विशिष्ट in एड है, और आप इसे आराम से अपनी पसंद के आईडीई के यूजर इंटरफेस के भीतर से संपादित कर सकते हैं। यदि आप चाहते हैं, इसके बजाय, प्रोजेक्ट, le को मैन्युअल रूप से संपादित करने के लिए, तो .csproj XML value le को एडिट करना और टारगेट वर्कवर्क तत्व के मान को बदलना उतना ही आसान है। मान मॉनीकर को संदर्भित करता है जो पहचानता है कि संस्करण (जैसे netcoreapp2.0) के लिए है। '


0

मुझे विशेष रूप से पैकेज को अपडेट करने का तरीका नहीं मिला, लेकिन पैकेज मैनेजर कंसोल में मैंने 'अपडेट-पैकेज' चलाया। यह ईएफ कोर टूल्स सहित एक परियोजना में संदर्भित सभी पैकेजों के माध्यम से चला गया और अद्यतन किया गया। यह आपके लिए आदर्श नहीं हो सकता है क्योंकि आप जो पैकेज चाहते थे उसे अपडेट कर सकते हैं।


थैंक्स, @ मलकियर। मैंने अपडेट-पैकेज चलाया, और इसने कुछ चीजें अपडेट कीं। लेकिन चेतावनी संदेश अभी भी दिखाई दिया।
मार्क ऑलबर्ट

0

इस दस्तावेज़ के कदमों के बाद मुझे समस्या हल करने में मदद मिली - https://docs.oracle.com/cd/E17952_01/connector-net-en/connector-net-entityframework-core-scaffold-exc.html

Visual Studio में पैकेज प्रबंधक कंसोल का उपयोग कर डेटाबेस को मचान

  • विजुअल स्टूडियो खोलें और C # के लिए एक नया कंसोल ऐप (.NET कोर) बनाएं।
  • पैकेज प्रबंधक कंसोल का उपयोग करके EF कोर के लिए MySQL NuGet पैकेज जोड़ें। उदाहरण के लिए, MySql.Data.EntityFrameworkCore v8.0.13 को जोड़ने के लिए निम्न कमांड का उपयोग करें:

इंस्टॉल-पैकेज MySql.Data.EntityFrameworkCore -Version 8.0.13

जरूरी

संस्करण (उदाहरण के लिए, -Version 8.0.13) को आपके द्वारा उपयोग किए जा रहे वास्तविक कनेक्टर / NET संस्करण से मेल खाना चाहिए। वर्तमान संस्करण की जानकारी के लिए।

  • पैकेज प्रबंधक कंसोल का चयन करके निम्नलिखित NuGet पैकेज स्थापित करें या टूल से समाधान के लिए NuGet पैकेज प्रबंधित करें और फिर NuGet पैकेज मेनू चुनें:

    Microsoft.EntityFrameworkCore.Design
    
    EF Core 1.1 only: Also add the MySql.Data.EntityFrameworkCore.Design package.
    
    Microsoft.EntityFrameworkCore.Tools version 1.1.6 (for EF Core 1.1) and Microsoft.EntityFrameworkCore.Tools version 2.0.3 (for EF Core 2.0)
    Note
    
    The .NET tools are included in the .NET Core 2.1 SDK and not required or supported for EF Core 2.1. If this is an upgrade, remove the reference to that package from the .csproj file (version 2.0.3 in this example) :
    
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
    

    ओपन पैकेज प्रबंधक कंसोल और संस्थाओं बनाने के लिए प्रॉम्प्ट पर निम्न आदेश दर्ज करें और DbContextके लिए sakilaडेटाबेस (उपयोगकर्ता के लिए अपनी सेटिंग = और पासवर्ड = विकल्पों से मेल कनेक्शन स्ट्रिंग मान समायोजित):

मचान-DbContext "सर्वर = लोकलहोस्ट; पोर्ट = 3306; उपयोगकर्ता = रूट; पासवर्ड = mypass; डेटाबेस = sakila" MySql.Data.EntityFrameworkCore -OutputDad sakila -f

Visual Studio प्रोजेक्ट के अंदर एक नया sakila फोल्डर बनाता है, जिसमें सभी टेबल को संस्थाओं और makilaContext.cs फ़ाइल में मैप किया जाता है।

भले ही Oracle निर्देशों ने कहा कि Microsoft.EntityFrameworkCore.Tools EF Core 2.1 के लिए आवश्यक नहीं था। मैंने संस्करण 2.2.0 को स्थापित किया है जो EF 2.2 के साथ संगत है


0

विशिष्ट संस्करण के लिए मार्टिन उपयोग कमांड लाइन, सीएमडी या पॉवरशेल की तरह:

डॉटनेट टूल अपडेट --global dotnet-ef --version 3.1.0

या नवीनतम संस्करण उपयोग के लिए (पुनर्स्थापना के लिए भी काम करता है):

डॉटनेट टूल अपडेट --global dotnet-ef

लेकिन, मुझे अपने पीसी में समस्या आ गई है: "जब किसी भी संस्करण को निर्दिष्ट करने वाले कमांड व्हाइटआउट को चलाने पर मुझे निम्न त्रुटि मिली: टूल 'डॉटनेट-एफईई' निम्नलिखित के कारण अपडेट करने में विफल रहा: टूल पैकेज को बहाल नहीं किया जा सका" लिको पिप्पली 4646

इसलिए, मैं इन चरणों का उपयोग करता हूं:

डॉटनेट टूल अनइंस्टॉल - Global dotnet-ef लेकिन एक ही समस्या है, इसलिए मैं एक्सटेंशन की निर्देशिका में जा रहा हूं: C: \ Users \ Evan.dotnet \ tools.store \ dotnet-ef

और मुझे पुराना संस्करण (2.x) मिला और मेरी दूसरी समस्या फ़ाइल fileproject.assets.json नहीं थी

इसलिए मैं मूल संस्करण के लिए 2.x संस्करण में fileproject.assets.json की प्रतिलिपि बनाता हूं

और सब पूरी तरह से किया गया था:

  1. डॉटनेट टूल अनइंस्टॉल --global dotnet-ef

    2.x संस्करण निकालता है

  2. dotnet tool install --global dotnet-ef

    3.1 स्थापित करें


0

अद्यतन ईएफ कोर उपकरण डॉटनेट सीएलआई या पैकेज मैनेजर कंसोल का उपयोग करके या
इस साइट पर जाकर https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.Tools/2.1.2

या आप इसे अनदेखा कर सकते हैं। यह कोई बड़ा मुद्दा नहीं है ...


0

आपके आवेदन में, डॉट डॉट कोर लाइब्रेरी संस्करण 2.1.2 है और आप एंटिटी फ्रेमवर्क कोर (2.1.1) के 2.1.1 पर काम कर रहे हैं। तो, अपने पुस्तकालय संस्करण को अपडेट करें जो कि डॉट.net कोर संस्करण (2.1.2) के बराबर होना चाहिए।

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