কোডের প্রায় কোনও পরিবর্তন ছাড়াই একাধিকবার "মিস করা সংকলক প্রয়োজনীয় সদস্য" ত্রুটি একাধিকবার নিক্ষেপ করা হচ্ছে


95

আজ আমি চালিত একটি সি # এমভিসি সাইটে কিছু পরিবর্তন মোতায়েন করার পরে, আমি আরও কিছু পরিবর্তন করতে ফিরে গিয়ে এই ত্রুটিটি দেখতে পেয়েছিলাম:

নিখোঁজ সংকলক সদস্য সদস্য সিস্টেম.আরটাইম.কম্পাইলার সার্ভিস. এক্সটেনশনঅ্যাট্রিবিউট..একটি

ত্রুটিটি কিছুটা অস্পষ্ট (এটি বর্ণনা ছাড়া অন্যটি স্পষ্টতই) কারণ এটি আমাকে কেবল একটি প্রকল্প, রেফারেন্সের জন্য কোনও ফাইল, লাইন বা কলাম দেয় না। এছাড়াও, এটি ত্রুটিটি মোট 20 বার নিক্ষেপ করে। আমি মোতায়েন করা সময়ের মধ্যে কোডটিতে কেবলমাত্র তিনটি পরিবর্তন করেছি (এটি তখনকার সময়ে এটি সম্পূর্ণ কার্যকর ছিল) এবং এখন। আমি আমার পরিবর্তনগুলি আবার ফিরিয়ে দিয়েছি এবং এটি এখনও একই ত্রুটিটি ছুঁড়ে দিচ্ছে যা আমার কাছে কোনও ধারণা রাখে না।

এই লোকেদের সমাধান ছাড়াও এসও বা গুগলে এই ত্রুটি সম্পর্কিত অনেক তথ্য আমি খুঁজে পাইনি এবং কিছু মনো প্রকল্পের ত্রুটির জন্য কয়েকটি দম্পতি উল্লেখ করেছেন (আমি মনো ব্যবহার করছি না)। উপরের লোকটি যে সমাধান দেয় তার জন্য একটি শ্রেণি সংজ্ঞা যুক্ত করা দরকার যা সংকলকটিকে রেফারেন্সটি সমাধান করার অনুমতি দেবে। আমি বিশেষত এটি করতে চাই না কারণ এই পয়েন্ট অবধি আমার এটি করার দরকার নেই এবং এটি আমার কোডটিকে জঞ্জাল করে দেবে।

এর আগে যদি কেউ এই জুড়ে চলেছে তবে কেবল কৌতূহল। আগাম ধন্যবাদ!


4
দেখে মনে হচ্ছে আপনি একটি সি # 3.0 সংকলক ব্যবহার করছেন তবে। নেট ফ্রেমওয়ার্ক 2.0 এর সাথে সংকলন করছেন। আপনার সমাবেশ উল্লেখ দেখুন।
dtb

উত্তর:


27

এই ত্রুটিটির অর্থ সাধারণত হয় আপনার প্রকল্পটি .NET 2.0 এর বিপরীতে সংকলন করছে বা আপনি System.Core.dll এর সঠিক সংস্করণটি উল্লেখ করছেন না either

কাছাকাছি সদৃশ প্রশ্নের জন্য, সি # তে এক্সটেনশন পদ্ধতিগুলি ব্যবহার করার সময় ত্রুটি দেখুন


এটি প্রকৃতপক্ষে প্রমাণিত হয়েছিল যে কোনও অ্যাসেমব্লির আমার কাছে একটি খারাপ রেফারেন্স ছিল যা আমি আর ব্যবহার করছিলাম না (অ্যাজুরে)। আমি মনে করি না যে আজুর অ্যাসেম্বলি। নেট 2.0 এর বিপরীতে সংকলিত হয়েছিল তবে এটি সরানোর ফলে সমস্যাটি স্থির হয়েছে। আমি নিশ্চিত নই যে কেন আমি আমার সমাবেশগুলি বা। নেট সংস্করণ (৪.০) সম্পর্কিত কোনও কিছু স্পর্শ করি নি এ কারণেই এলোমেলোভাবে অস্তিত্ব তৈরি হয়েছিল। হায়, আমাকে সঠিক দিকে নির্দেশ করার জন্য ধন্যবাদ।
জামেমিলিরিও

ইউনিটি 3 ডি সংকলকটি ডিফল্ট হিসাবে নেট 2 এ সংকলন সেট করে (লেখার সময়)। প্লেয়ার সেটিংসে, এই সমস্যাটি সমাধানের জন্য এটিকে নতুন.নেট সংস্করণে পরিবর্তন করুন।
শ্যাডো

234

আমার ক্ষেত্রে এটি ছিল কারণ প্রকল্পটি উল্লেখ করা হয়নি Microsoft.CSharp। আমি একবার এই সমাবেশে একটি উল্লেখ যুক্ত করেছি, এটি ঠিক জরিমানা সংকলিত।


4
সমস্যার সমাধান.
আন্তন লাহিন

16
আমার সমস্যাটি ইউনিট টেস্টে ডায়নামিক এবং এক্সপ্যান্ডো অবজেক্ট ব্যবহার করে ছিল। মাইক্রোসফ্ট.সিএসআরপ রেফারেন্সিং কৌশলটি ছিল। ধন্যবাদ!
রিয়েলপিটি

4
আমার কাছে ডায়নামিক টাইপ নিউটনসফট ইত্যাদি ছিল। নেটস স্ট্যান্ডার্ড ক্লাস লাইব্রেরিতে: `` `স্ট্রিং ওয়েদারজসন = গেটএন্সিঙ্ক (ইউআরএল) অপেক্ষা; ডায়নামিক অবজেক্ট = জসনকনভার্ট.ডিজরিয়ালাইজ অবজেক্ট (ওয়েদারজসন); গতিশীল টেম্প = ob.main.temp; । `` আমি মাইক্রোসফ্টের জন্য নিউজ অনুসন্ধান করেছি। লাইব্রেরি এখন তৈরি করে :) প্রশ্নঃ আমি কি এটি ব্যবহার করতে পারি? মাইক্রোসফ্যাক্ট রেফারেন্সটি দিয়ে লিনাক্স অ্যাপ্লিকেশনটিতে নেট স্ট্যান্ডার্ড লাইব্রেরি?
ডেভিড জোন্স

ধন্যবাদ! কোনও কারণে এই বার্তাটি আমার কাছে স্পষ্ট ছিল না! আমি অনেক আগে লেখা একটি প্রকল্প টুইট করছি এবং এই রেফারেন্স উপাদান ভীতিজনক। জাভা সম্পর্কিত তুলনামূলক পরিষ্কারতার প্রশংসা করি যা আমি সাধারণত ব্যবহার করি।
টুনটেবল

83

আমি জানি না অন্য কেউ এটি অনুভব করেছেন কিনা তবে আমি হঠাৎ এই কোডটি ব্যবহার করে কিছু কোড ব্যবহার করে dynamicএবং ভিএপি ২০১৩-তে টাইপস্ক্রিপ্ট অ্যাপ্লিকেশন হিসাবে উদ্ভূত একটি প্রকল্পে ওয়েবএপিআই অন্তর্ভুক্ত করার পরে এই ত্রুটিটি ঘটাচ্ছি। মাইক্রোসফ্টে কেবল একটি রেফারেন্স যুক্ত করুন CS

আশাকরি এটি কাউকে সাহায্য করবে।


4
এটা ঠিক আমার সমস্যা ছিল। গতিশীলর সাথে যুক্ত করা রহস্যজনকভাবে প্রকল্পটি ভেঙে দিয়েছে।
দক্ষিণশোরাক

4
আমার জন্য একই। নেট স্ট্যান্ডার্ড ২.০ সহ গতিশীল ব্যবহার করে, এটি সংকলনের জন্য আমাকে সি # নুগেট ইনস্টল করতে হয়েছিল
মাহমুদ হানাফি

17

আমি আজও এই পরিস্থিতিতে ছুটেছি। আমার ক্ষেত্রে আমি আমার। নেট 4.0 অ্যাপ্লিকেশনটিতে নিউটন.জসন.নেট ডেল ভি 3.5 উল্লেখ করছি। আমি বুঝতে পেরেছিলাম যে আমি এমনকি এই গ্রন্থাগারটি ব্যবহার করতে চাইছি না, এইভাবে আমি একবার এটি আমার রেফারেন্সগুলি থেকে সরিয়ে দিলে এটি আর আমাকে সংকলক ত্রুটি দেয় না।

সমস্যা সমাধান!!!


4
আমার জন্য একই, নিউটন.জসন.নেট ডেল সমস্যা তৈরি করেছে!
জুলিয়েন পিয়ের

আমার ক্ষেত্রে কারণটি ছিল মাইক্রোসফ্টের অ্যান্টিএক্সএসএস লাইবারি.ডল এর ​​ভুল নেট সংস্করণ। NET35 দিয়ে প্রতিস্থাপন করা হয়েছে - ত্রুটি চলে গেছে।
ডেনিস

7

আসল ত্রুটিটি এই ঘটনায় আসে যে আপনার ২.০ সমাবেশের ফলে ত্রুটির কারণ হয় এই কোডটি:

namespace System.Runtime.CompilerServices
{
    public class ExtensionAttribute : Attribute { }
}

উপরের কোডটি .NET 2.0 বিধানসভাকে এক্সটেনশন পদ্ধতিগুলি ব্যবহার করার অনুমতি দেয় (দেখুন .NET 2.0 তে এক্সটেনশন পদ্ধতিগুলি ব্যবহার করে দেখুন )। যদিও আপনি .NET 4.0 কে টার্গেট করে এটি সংকলককে বিভ্রান্ত করে এবং mscorlib.dll (4.0) হিসাবে একটি 2.0 অ্যাসেমব্লিকে (উপরে কোড সহ) উল্লেখ করে একই নামস্থানে একই ক্লাস রয়েছে contains

আমি এটা ঠিক করেছি

  • ৪.০ বৈশিষ্ট্যটি লক্ষ্যবস্তু না করে মূল ২.০ অ্যাসেমব্লিকে আবার সংকলন করে
  • সমাবেশ সরিয়ে (স্পষ্টতই)
  • আপনি যে লক্ষ্যটি সংকলন করেছেন তাতে তৃতীয় এক্সটেনশন অ্যাট্রিবিউট যুক্ত করে (এটি রেফারেন্সযুক্ত সংজ্ঞাগুলি অতিক্রম করবে বলে মনে হচ্ছে)

এটি ঠিক আমার সমস্যা, আমি আপনার নির্দেশাবলীর চেষ্টা করে আবার পোস্ট করব post
জন পিটার্স 21

6

আপনার প্রকল্পের কোথাও এই কোডটি লেখা আপনার সমস্যার সমাধান করতে পারে। এটা আমার জন্য কাজ করে

namespace System.Runtime.CompilerServices
{
    public class ExtensionAttribute : Attribute { }
}

আপনি এই কোডটি কোথায় লিখবেন? আপনি প্রকল্পের মূল একটি শ্রেণি তৈরি করেছেন?
অ্যালেক্স

4
@ অ্যালেক্স আমি কোডটি বন্ধ রেখে আমার প্রকল্পের মূলটিতে কমপাইলার সার্ভিস নামে একটি ক্লাস যুক্ত করেছি এবং এটি কাজ করেছে। সুন্দর!
হাভার্ড

4

.NET 4.0 প্রকল্প থেকে রেফারেন্স করা NLog.dll 2.0 এটির কারণও হতে পারে।


.NET 3.5 থেকে রেফারেন্স করা .NET 2.0 এর জন্য এনএলগ অনুরূপ ত্রুটি বলে মনে হচ্ছে।
পেড্রো

3

সম্ভবত আপনি dynamic। নেট স্ট্যান্ডার্ড ক্লাস লাইব্রেরী প্রকল্পে কীওয়ার্ডটি ব্যবহার করেন । যদি তা হয় তবে আপনাকে Microsoft.CSharpপ্রকল্পের লাইব্রেরিতে একটি রেফারেন্স যুক্ত করতে হবে । আশা করি এটি আপনার সমস্যার সমাধান করবে।


2

আমার সঠিক সমাধান নেই, তবে আমি আমার ডেটা পয়েন্ট যুক্ত করব:

আমার ক্ষেত্রে ত্রুটিটি Google অনুসন্ধান APINet20 উল্লেখ করে 20

যা ঘটে তা এখানে:

  • আমি যে সমাধানটি তৈরি করি তা বন্ধ করে দিই
  • আমি আবার সমাধান খুলি। এটি এখনও নির্মাণ
  • যত তাড়াতাড়ি আমি কোনও পরিবর্তন আনা এবং নির্মাণের চেষ্টা করার সাথে সাথে আমি 19 "মিসিং কম্পাইলারের প্রয়োজন সদস্য ..." ত্রুটি পেয়েছি
  • আমি গুগল সন্ধান অ্যাপিনেট ২০-এর রেফারেন্সটি সরিয়েছি
  • আমি গুগল সন্ধান এপিনেট ২০-এ রেফারেন্সটি আবার যুক্ত করছি
  • আমি সমাধান তৈরি। এটি ত্রুটি ছাড়াই নির্মিত হয়
  • আমার ভিজুয়াল স্টুডিওটি যতক্ষণ না খোলা আছে আমি এখনই সমাধানের সাথে সমাধানের সাথে অন্য কোনও ক্রিয়াকলাপ তৈরি বা সম্পাদন করতে পারি
  • আমি ভিজ্যুয়াল স্টুডিও বন্ধ করি
  • প্রথম ধাপ থেকে পুনরাবৃত্তি করুন

আমি আমার সমাধানগুলিতে একেবারে System.Core.dll রেফারেন্স দিচ্ছি না এবং আমার টার্গেট ফ্রেমওয়ার্কটি নেট 4 4

আমি এই মুহুর্তে কিছুটা বিরক্ত ...


1

.NET 4.0 এর বিপরীতে async কার্যগুলি ব্যবহার করার চেষ্টা করার সময় এই ত্রুটিটি পেয়েছি। টার্গেট ফ্রেমওয়ার্কটি 4.5.2 এ আপডেট করা সমস্যার সমাধান করে fixed


1

আমি উইনফর্মস প্রকল্পে কিছু অ্যাসিঙ্ক পদ্ধতি যুক্ত করার পরে আমি একই ব্যাতিক্রমগুলিকে হিট করেছি। আমার .NET সংস্করণটি 4 থেকে 4.5 বাছাই করা দরকার


0

আমার জন্য, সমস্যাটি দেখা দেয় যখন আমি অ্যাসিঙ্ক টাস্ক সহ অ্যাসিক্রোনাস পদ্ধতি যুক্ত করি তখন আমার .net4.0 প্রকল্পে অপেক্ষা করা হয়!

.NET- ফ্রেমওয়ার্ক 4.5 এর পূর্ববর্তী সংস্করণগুলির সাথে, আপনাকে অবশ্যই এই প্যাকেজটি ইনস্টল করতে হবে:

Install-package Microsoft.Bcl.Async –pre

বা

Install-Package Microsoft.CompilerServices.AsyncTargetingPack

নুগেট বা নুগেটে আরও তথ্য

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