EF কোর সরঞ্জাম আপডেট করতে হবে


141

আমি যখন ভিএস 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

তবে আমার সিএসপোজ ফাইলটিতে এই প্রবেশ রয়েছে:

  <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

সুতরাং সরঞ্জামগুলি আপডেট করতে আমি কী করব? বিটিডাব্লু, আমি অন্যান্য উত্তরে দেখেছি যে একটি বহিরাগত গ্লোবাল.জসন ফাইল এই সমস্যার কারণ হতে পারে। তবে সমাধানের কোথাও আমার কাছে গ্লোবাল.জেসন ফাইল নেই।


আমি মনে করি আপনি ডটনেটক্লিটিটুল রেফারেন্স, github.com/aspnet/EntityFramework.Docs/issues/708
অ্যান্টোনিও ক্যাম্পাগানারো

পরামর্শের জন্য থ্যাঙ্কস, @ অ্যান্টোনিও ক্যাম্পাগানারো। তবে আমি যখন এই উল্লেখগুলি সরিয়ে দিই, তখনও আমি সতর্কতা বার্তাটি পাই।
মার্ক ওলবার্ট

উত্তর:


274

নির্দিষ্ট সংস্করণের জন্য কমান্ড লাইন, সিএমডি বা পাওয়ারশেল ব্যবহার করুন :

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

বা সর্বশেষ সংস্করণ ব্যবহারের জন্য (পুনরায় ইনস্টল করার জন্যও কাজ করে) :

dotnet tool update --global dotnet-ef


4
আমার সংস্করণ 3.0.০.০ ছিল এবং প্রথম কমান্ডটি আমার পক্ষে কাজ করেছিল, কিন্তু দ্বিতীয়টি তা করেনি। কমান্ডটি হোয়াইটআউট চালানোর সময় যে কোনও সংস্করণ উল্লেখ করে আমি নিম্নলিখিত ত্রুটিটি পেয়েছি: সরঞ্জামটির কারণে 'ডটনেট-এফ' নিম্নলিখিত কারণে আপডেট করতে ব্যর্থ হয়েছে: সরঞ্জাম প্যাকেজটি পুনরুদ্ধার করা যায়নি ...
পিপ্পো 46

63
কেন তারা শুধু এই করা না পারেন, ইন ত্রুটি বার্তা!
সাইমন_উইভার

4
আমাদের সম্ভবত একদিন একটি জনসংযোগ করা উচিত ... @ সিমন_উইভার
রিস্কি

11
হেক, আমি একটি PR তৈরি করেছি: github.com/dotnet/efcore/pull/20792
রিস্কি

19

এই সমস্যাটি আমি গিথুব ছাড়িয়ে বিকাশকারী দলের কাছে তুলে ধরলাম । দেখা যাচ্ছে এটি বর্তমান টুলিং বা নুগেট প্যাকেজগুলির একটি জ্ঞাত সমস্যা যা আপনি কোনও EF কোর চালিত অ্যাসপনেট কোর সাইট তৈরি করার সময় লোড হয়ে যায়। এটি ভবিষ্যতের প্রকাশে স্থির করার লক্ষ্য রয়েছে।

আপাতত, কর্মসংস্থানটি কেবল সতর্কতাটিকে উপেক্ষা করা।

অ্যাসপনেট কোর মেটাপ্যাকেজের সংস্করণটি স্পষ্টভাবে সংজ্ঞায়িত করার জন্য সিএসপিজেজ ফাইলটি ট্যুইচিংয়ের সাথে জড়িত অন্য একটি কাজের প্রস্তাবও দেওয়া হয়েছে - এটি লিখার সাথে সাথে এটি 2.1.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/Mic Microsoft.EntityFrameworkCore/


11

এটি ব্যবহার করে দেখুন: ইনস্টল করুন-প্যাকেজ মাইক্রোসফ্ট

যদি এখনও সমস্যা দেখা দেয়, তবে এটিও সম্পাদন করুন: আপডেট-প্যাকেজ মাইক্রোসফ্ট।


4
এটি একটি ভাল পরামর্শ, তবে আমার জন্য সমস্যাটি স্থির করেনি ।
বনুনা

আমার জন্য একটি অনুপস্থিত প্যাকেজ ইনস্টল করেছে, একটি প্রজন্মের সমস্যার সমাধান করেছে, কিন্তু সতর্কতা অব্যাহত রয়েছে। যে কোনও উপায়ে ভাল পরামর্শ।
ডিসলেক্সিকানাবোকো

3

আমার সমাধানটি ছিল মাইক্রোসফ্ট https://www.nuget.org/packages/dotnet-ef থেকে ডটনেট-এফ সরঞ্জামটি ইনস্টল করা । এটি একই কমান্ড ব্যবহার করে তবে কোনও সতর্কতা নেই। পরিবর্তনটি ডটনেট ইফের পরিবর্তে ডটনেট-ইফ ব্যবহার করা হবে।

এবং যদি আপনি ইতিমধ্যে ডটনেট-ইফ ইনস্টলড থাকেন তবে ব্যবহার করুন dotnet tool update --global dotnet-ef --version n.n.n(আপডেট করার জন্য আপনার সংস্করণটি এনএনএন)


2

একটি নতুন .NET কোর এসডিকে v2.1.401 সংস্করণ ইনস্টল করুন এবং আবার> ডটনেট ইফ - রূপান্তর পরীক্ষা করুন। আমার একই সমস্যা ছিল এবং আমার ক্ষেত্রে এটি কাজ করেছিল। এছাড়াও, আপনাকে মাইক্রোসফ্ট.এন্টি ফ্রেমওয়ার্ককোর.টুলস.ডটনেট যুক্ত করার দরকার নেই।


থ্যাঙ্কস, @ সুরবাণীক আমি ইতিমধ্যে এটি করেছি। দেখা যাচ্ছে এটি বর্তমান নুগেট প্যাকেজগুলির সাথে একটি পরিচিত সমস্যা এবং এটি স্থির করার জন্য লক্ষ্যযুক্ত। কার্যকারিতা হ'ল সমস্যাটিকে কেবল উপেক্ষা করা, যেমন (পূর্বনির্ধারিত; এটি নিজেই পরীক্ষা করা হয়নি) কার্যকারিতার কোনও ক্ষতি নেই।
মার্ক ওলবার্ট

এই উত্তরটি আমাকেও সাহায্য করেছিল। আমি। নেট কোর এসডিকে v2.1.403 (প্রায় একই সংস্করণ) ইনস্টল করেছি এবং সতর্কতাটি আর প্রদর্শিত হবে না। আপনাকে নিশ্চিত করতে হবে যে এই জাতীয় সতর্কতা এড়াতে। নেট কোর এসডিকে এবং রানটাইম উভয়ই আপডেট হয়েছে, যে সংস্করণগুলি আপ টু ডেট। মাইক্রোসফ্ট ওয়েব
সাইটেও ইউআরএলগুলি

আমি .NET কোর এসকেডি v2.1.701 ইনস্টল করেছি (ডটনেট-এসডিকি -২.১.70০১-উইন-এক্স 6464.এক্সি) তবে আমি এখনও ত্রুটি পেয়েছি।
পতে গুটি

2

এই সমস্যাটি সমাধান করার জন্য আপনি নিম্নলিখিত কৌশলগুলির একটি অনুসরণ করতে পারেন:


  • প্রযুক্তি 1: প্যাকেজ ম্যানেজার কনসোল ব্যবহার করে (বিশেষত মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও ব্যবহারকারীদের জন্য)
    প্রধানমন্ত্রী >Install-Package Microsoft.EntityFrameworkCore.Tools -Version 2.1.2

  • টেকনিক 2:। নেট সিএলআই
    > ব্যবহার করে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: প্যাকেট সিএলআই ব্যবহার করে
    >paket add Microsoft.EntityFrameworkCore.Tools --version 2.1.2

মনে রাখবেন: এই সংস্করণটি ব্যবহার করার জন্য আপনার নুগেট 3.6 বা ততোধিক প্রয়োজন
রেফারেন্স লিংক: https://www.nuget.org/packages/Mic Microsoft.EntityFrameworkCore.Tools/2.1.2


1
  • বিষয়টি উপেক্ষা করুন
  • আপনার <প্যাকেজ রেফারেন্স অন্তর্ভুক্ত = "মাইক্রোসফ্ট। অ্যান্টিটি ফ্রেমওয়ার্ককোর আপডেট করুন না। সরঞ্জাম" সংস্করণ = "" />
  • আমার ক্ষেত্রে, আমি 'আপডেট-ডেটাবেস-কনটেক্সট মাইলেমেন্টকন্টেক্সট' নিয়ে এগিয়ে এসেছি এবং এখন এটি ঠিক আছে।

আমি এটি ডাইনো এস্পোসিতোর 'প্রোগ্রামিং এএসপি.এনইটি কোর' বইটিতে পেয়েছি।

'দ্রষ্টব্য সিএলআই টুলিংয়ের এই সংস্করণটি .NET কোর রানটাইমের অ্যাপ্লিকেশনটি ব্যবহার করবে এমন সংস্করণের মতো নয়। রানটাইম সংস্করণটি প্রজেক্টে স্পেসিটেড এবং আপনি নিজের পছন্দের আইডিইর ইউজার ইন্টারফেসের মধ্যে থেকে স্বাচ্ছন্দ্যে এটি সম্পাদনা করতে পারেন। আপনি যদি পরিবর্তে, প্রকল্পটি ম্যানুয়ালি সম্পাদনা করতে চান তবে এটি .csproj XML fi le সম্পাদনা করা এবং টার্গেটফ্রেমক উপাদানটির মান পরিবর্তন করার মতোই সহজ। মানটি মনিকারকে বোঝায় যা সংস্করণটি সনাক্ত করে such যেমন সংস্করণ (যেমন নেটকোরপ্প ২.০) '


0

প্যাকেজটি কীভাবে আপডেট করবেন তা আমি খুঁজে পাইনি, তবে প্যাকেজ ম্যানেজার কনসোলে আমি 'আপডেট-প্যাকেজ' চালিয়েছি। এটি EF কোর সরঞ্জামগুলি সহ একটি প্রকল্পে রেফারেন্সযুক্ত সমস্ত প্যাকেজগুলির মধ্য দিয়ে গেছে এবং আপডেট করেছে। এটি আপনার পক্ষে আদর্শ নাও হতে পারে কারণ এটি আপনি চান না এমন প্যাকেজগুলি আপডেট করতে পারে।


থানেক্স, @ ল্যাম্পিয়ার আমি আপডেট-প্যাকেজ চালিয়েছি এবং এটি কিছু জিনিস আপডেট করেছে updated তবে সতর্কবার্তাটি এখনও উপস্থিত হয়েছিল।
মার্ক ওলবার্ট

0

এই দস্তাবেজের পদক্ষেপগুলি অনুসরণ করা আমাকে সমস্যার সমাধান করতে সহায়তা করেছে - https://docs.oracle.com/cd/E17952_01/connector-net-en/connector-net-entityframework-core-scaffold-example.html

ভিজ্যুয়াল স্টুডিওতে প্যাকেজ ম্যানেজার কনসোল ব্যবহার করে একটি ডেটাবেস স্ক্যাফল্ডিং

  • ভিজ্যুয়াল স্টুডিও খুলুন এবং সি # এর জন্য একটি নতুন কনসোল অ্যাপ (। নেট কোর) তৈরি করুন।
  • প্যাকেজ ম্যানেজার কনসোল ব্যবহার করে EF কোরের জন্য মাইএসকিউএল নিউগেট প্যাকেজ যুক্ত করুন। উদাহরণস্বরূপ, MySQL.Data.EntityFrameworkCore v8.0.13 প্যাকেজ যুক্ত করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

ইনস্টল-প্যাকেজ মাইএসকিউএল.ডাটা.এন্টিটি ফ্রেমওয়ার্ককোর-সংস্করণ 8.0.13

গুরুত্বপূর্ণ

সংস্করণ (উদাহরণস্বরূপ, সংস্করণ 8.0.13) আপনি ব্যবহার করছেন প্রকৃত সংযোগকারী / নেট সংস্করণটি অবশ্যই মিলবে। বর্তমান সংস্করণ তথ্যের জন্য।

  • সরঞ্জামগুলি থেকে সমাধানের জন্য প্যাকেজ ম্যানেজার কনসোল বা নিউজিট প্যাকেজগুলি পরিচালনা করে নীচের নিউগেট প্যাকেজগুলি ইনস্টল করুন এবং তারপরে নুগেট প্যাকেজ ম্যানেজার মেনু:

    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(ব্যবহারকারী = এবং পাসওয়ার্ড = বিকল্পগুলির সাথে আপনার সেটিংসের সাথে মেলে সংযোগ-স্ট্রিংয়ের মানগুলি সামঞ্জস্য করুন):

স্ক্যাফোল্ড-ডিবিকন্টেক্সট "সার্ভার = লোকালহোস্ট; পোর্ট = 3306; ব্যবহারকারী = মূল; পাসওয়ার্ড = মাইপাস; ডাটাবেস = সাকিলা" মাইএসকিএল.ডাটা.এন্টি ফ্রেমওয়ার্ককোর -আউটপুটডির শাকিলা -f

ভিজ্যুয়াল স্টুডিও প্রজেক্টের অভ্যন্তরে একটি নতুন সাকিলা ফোল্ডার তৈরি করে, এতে সত্তা ও সাকিলাকন্টেক্সট.সি ফাইলগুলিতে ম্যাপযুক্ত সমস্ত টেবিল রয়েছে।

যদিও ওরাকল নির্দেশাবলী বলেছে যে মাইক্রোসফ্ট.এন্টি ফ্রেমওয়ার্ককোর.ইুলের প্রয়োজন নেই EF কোর 2.1 এর জন্য আমি EF 2.2 এর সাথে সামঞ্জস্যপূর্ণ 2.2.0 সংস্করণটি ইনস্টল করেছি I


0

নির্দিষ্ট সংস্করণের জন্য মার্টিন ইউজ কমান্ড লাইন, সিএমডি বা পাওয়ারশেলের মতো:

ডটনেট সরঞ্জাম আপডেট - গ্লোবাল ডটনেট-ইএফ - রূপান্তর 3.1.0

বা সর্বশেষ সংস্করণ ব্যবহারের জন্য (পুনরায় ইনস্টল করার জন্যও কাজ করে):

ডটনেট সরঞ্জাম আপডেট - গ্লোবাল ডটনেট-এফ

তবে, আমার পিসিতে আমি সমস্যা পেয়েছি: "কমান্ডটি চালানোর সময় কোনও সংস্করণ উল্লেখ করে হোয়াইট আউট করার পরে আমি নিম্নলিখিত ত্রুটিটি পেয়েছি: টুল 'ডটনেট-এফ' নিম্নলিখিত কারণে আপডেট করতে ব্যর্থ হয়েছে: সরঞ্জাম প্যাকেজটি পুনরুদ্ধার করা যায়নি" লিকো পিপ্পো 46

সুতরাং, আমি এই পদক্ষেপগুলি ব্যবহার করি:

ডটনেট সরঞ্জাম আনইনস্টল করুন - গ্লোবাল ডটনেট-এফ তবে একই সমস্যাটি পেয়েছে, তাই আমি এক্সটেনশনের ডিরেক্টরিতে যাচ্ছি: সি: \ ব্যবহারকারীরা van ইভান.ডটনেট \ সরঞ্জামসস্টোর \ ডটনেট-এফ

এবং আমি পুরানো সংস্করণটি খুঁজে পেয়েছি (২.x) এবং আমার দ্বিতীয় সমস্যাটি ছিল ফাইল ফাইলপ্রজেক্ট.আসেটস.জসন ফাইলটি পাওয়া যায় নি

সুতরাং আমি 2.x সংস্করণে ফাইলপ্রজেক্ট.আসেটস.জেসন কে প্যারেন্ট রিপোজিটরিতে অনুলিপি করছি

এবং সবকিছু নিখুঁতভাবে সম্পন্ন হয়েছিল:

  1. ডটনেট সরঞ্জাম আনইনস্টল করুন - গ্লোবাল ডটনেট-ইফ

    2.x সংস্করণ সরান

  2. ডটনেট সরঞ্জাম ইনস্টল করুন - গ্লোবাল ডটনেট-এফ

    3.1 ইনস্টল করুন


0

ডটনেট সিএলআই বা প্যাকেজ ম্যানেজার কনসোল ব্যবহার করে বা
এই সাইটটি পরিদর্শন করুন https://www.nuget.org/packages/Mic Microsoft.EntityFrameworkCore.Tools/2.1.2 বা EF কোর সরঞ্জামগুলি আপডেট করুন

বা আপনি এড়িয়ে যেতে পারেন। এটি বড় বিষয় নয় ...


0

আপনার আবেদনে, ডট নেট কোর লাইব্রেরি সংস্করণটি ২.১.২ এবং আপনি সত্তা ফ্রেমওয়ার্ক কোর (২.১.১) এর ২.১.১ এ কাজ করছেন। সুতরাং, আপনার লাইব্রেরি সংস্করণটি আপডেট করুন যা ডটনেট কোর সংস্করণের (২.১.২) সমান হওয়া উচিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.