টাইপলয়েডএক্সসেপশন বলেছে 'বাস্তবায়ন নেই', তবে এটি বাস্তবায়িত হয়েছে


270

আমি আমাদের টেস্ট মেশিনে খুব অদ্ভুত একটি বাগ পেয়েছি। ত্রুটিটি হ'ল:

System.TypeLoadException: Method 'SetShort' in type 'DummyItem' from assembly 'ActiveViewers (...)' does not have an implementation.

আমি কেন বুঝতে পারি না। SetShortরয়েছে DummyItemবর্গ, এবং আমি এমনকি ঠিক নিশ্চিত যে এটা একটা স্থাপনার / ইস্যু ভার্সন নয় করতে ইভেন্ট লগ উদ্দেশে চিঠি লেখেন সঙ্গে একটি সংস্করণ recompiled গেছেন। আশ্চর্যের বিষয় হ'ল কলিং কোডটি এমনকি SetShortপদ্ধতিটিকে কল করে না ।


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

ধন্যবাদ পল, আপনার মন্তব্য পড়ার পরে আমি প্রথমে এটি চেষ্টা করেছি।
মনোমুগ্ধকর

ধন্যবাদ পৌল, আমাকে কয়েক ঘন্টা অবিরত বানরের মতো আমার মাথা আঁচড়ান ...
কেইন চু

এছাড়াও, ভিএস 2017 15.7 আপডেটের পরে, ভিএস আপনাকে রিবুট করতে বলে। আপনি এটি নাও করতে পারেন (আমার মতো, সভাগুলি ভুলে গিয়েছিলাম বলে)। আমি এর মতো
ক্রোপলোড

কেবল আমার 2 পি যুক্ত করতে - এমএসটিস্টে ইউনিট পরীক্ষা চালানোর সময় আমি এই সমস্যাটি পেয়েছি। পরীক্ষার অধীনে ক্লাসগুলি একটি স্বাক্ষরিত সমাবেশে ছিল। এই সমাবেশের একটি ভিন্ন সংস্করণ জিএসি-তে ঘটেছিল। এমএসটিস্ট বিন ফোল্ডার থেকে একটিটি ব্যবহার না করে GAC'd অ্যাসেমব্লিকে তুলছিল এবং এর বিরুদ্ধে পরীক্ষা চালানোর চেষ্টা করছিল যা স্পষ্টতই কাজ করছে না। সমাধানটি ছিল জিএসি'এড অ্যাসেমব্লিটি সরিয়ে ফেলতে
টম

উত্তর:


244

দ্রষ্টব্য - যদি এই উত্তরটি আপনাকে সহায়তা না করে তবে দয়া করে লোকেরা যে সমস্ত উত্তরগুলি যুক্ত করেছে সেগুলি দিয়ে স্ক্রোল করার জন্য সময় দিন।

সংক্ষিপ্ত উত্তর

এটি ঘটতে পারে যদি আপনি কোনও সমাবেশে একটি ইন্টারফেসে কোনও পদ্ধতি যুক্ত করেন এবং তার পরে অন্য সমাবেশে একটি বাস্তবায়নকারী শ্রেণিতে যোগ করেন তবে আপনি ইন্টারফেস অ্যাসেমব্লির নতুন সংস্করণ উল্লেখ না করে বাস্তবায়নকারী সমাবেশটি পুনর্নির্মাণ করেন।

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

দীর্ঘ উত্তর

আপনি যদি এটি পুনরুত্পাদন করার চেষ্টা করতে চান তবে নিম্নলিখিতগুলি চেষ্টা করে দেখুন:

  1. একটি শ্রেণিবদ্ধ গ্রন্থাগার প্রকল্প তৈরি করুন: ইন্টারফেসডেফ, কেবল একটি শ্রেণি যুক্ত করুন এবং বিল্ড করুন:

    public interface IInterface
    {
        string GetString(string key);
        //short GetShort(string key);
    }
  2. একটি দ্বিতীয় শ্রেণির গ্রন্থাগার প্রকল্প তৈরি করুন: বাস্তবায়ন (পৃথক সমাধান সহ), ইন্টারফেসডেফ.ডিলকে প্রকল্প ডিরেক্টরিতে অনুলিপি করুন এবং ফাইলের রেফারেন্স হিসাবে যুক্ত করুন, কেবল একটি শ্রেণি যুক্ত করুন এবং বিল্ড করুন:

    public class ImplementingClass : IInterface
    {
        #region IInterface Members
        public string GetString(string key)
        {
            return "hello world";
        }
    
        //public short GetShort(string key)
        //{
        //    return 1;
        //}
        #endregion
    }
  3. তৃতীয়, কনসোল প্রজেক্ট তৈরি করুন: ক্লায়েন্টকোড, দুটি ডিরেক্টরিকে ডিরেক্টরি ডিরেক্টরিতে অনুলিপি করুন, ফাইলের রেফারেন্স যুক্ত করুন এবং নিম্নলিখিত কোডটি মূল পদ্ধতিতে যুক্ত করুন:

     IInterface test = new ImplementingClass();
     string s = test.GetString("dummykey");
     Console.WriteLine(s);
     Console.ReadKey();
  4. কোডটি একবার চালান, কনসোলটি "হ্যালো ওয়ার্ল্ড" বলে

  5. দুটি ডিএল প্রকল্পে কোডটি কমেন্ট করুন এবং পুনর্নির্মাণ করুন - ক্লায়েন্টকোড প্রকল্পে দুটি ঘড়িটি অনুলিপি করুন, পুনর্নির্মাণ করুন এবং আবার চালনার চেষ্টা করুন। ইমপ্লিমেন্টিং ক্লাসটি ইনস্ট্যান্ট করার চেষ্টা করার সময় টাইপলয়েডএক্সেপশন ঘটে।


1
আপনার যোগ করার দরকার হতে পারে যে কনসোল অ্যাপ্লিকেশনটিকে নতুন ডিএলএল দিয়ে পুনরায় তৈরি করা উচিত রেফারেন্স হিসাবে। কেবলমাত্র ডিএলএল অনুলিপি করা কার্যকর হবে না এবং এটি সংস্করণ অমিলের কারণে হতে পারে (যেমন আপনি উত্স ডিএলএল সংকলনের পরে সংস্করণটি পরিবর্তিত হবে)। এটা কি ন্যায্য বোঝা?
শাহকল্পেশ

@ শাহকল্পেশ ভালো পয়েন্ট - আমার জন্য 'আবার দৌড়াতে' F5 বোঝাচ্ছে। আমি উত্তর আপডেট করেছি। অবশ্যই এটি একটি শালীন সোর্স কন্ট্রোল সরঞ্জাম দিয়ে ঘটত না, তবে আমাকে সেই বিষয়টি শুরু করবেন না ...
বেনজল

4
হুম, দেখে মনে হচ্ছে মাইক্রোসফ্টের ত্রুটি বার্তায় এর মধ্যে একটি ত্রুটি রয়েছে - এটি বলছে যে "ডামি আইটেম" শ্রেণীর কোনও পদ্ধতির কোনও প্রয়োগ নেই, যা স্পষ্টতই মিথ্যা .... সত্যিই সমস্যাটি হ'ল ইন্টারফেসের একটি পদ্ধতিটি ডামি আইটেম দ্বারা প্রয়োগ করা হবে না।
কিওয়ারটি

3
এটি সম্পর্কে কোন ভাল চূড়ান্ত সমাধান? মাইক্রোসফ্ট কি সমাধান প্রস্তাবিত হয়েছিল?
কিউইনেট

12
সমাধানটি হ'ল বিন ফাইলগুলি নিজেই মোছা হয়। প্রকাশটি এগুলিকে পরিবর্তিত হিসাবে দেখছে না তাই আপনাকে এটি সর্বশেষতম করতে বাধ্য করতে হবে। এটি সত্যই শীর্ষ রেট উত্তরে লক্ষ করা উচিত!
ডিজে।

33

প্রশ্নকারীর নিজস্ব উত্তর ইতিমধ্যে যা বলেছে তা ছাড়াও এটি নিম্নলিখিতটি লক্ষ করার মতো হতে পারে। এর কারণ হ'ল কারণ কোনও শ্রেণীর পক্ষে সেই পদ্ধতিটি প্রয়োগ না করে ইন্টারফেস পদ্ধতির মতো একই স্বাক্ষরযুক্ত একটি পদ্ধতি থাকা সম্ভব। নিম্নলিখিত কোডটি ব্যাখ্যা করে যে:

public interface IFoo
{
    void DoFoo();
}

public class Foo : IFoo
{
    public void DoFoo() { Console.WriteLine("This is _not_ the interface method."); }
    void IFoo.DoFoo() { Console.WriteLine("This _is_ the interface method."); }
}

Foo foo = new Foo();
foo.DoFoo();               // This calls the non-interface method
IFoo foo2 = foo;
foo2.DoFoo();              // This calls the interface method

এটি আমার জন্য এটি সমাধান করেছিল, যে দাবিটি যে পদ্ধতিটি অনুপস্থিত ছিল তা যুক্ত করার একটি যুক্ত স্তরের সাথে প্যারেন্ট ক্লাস দ্বারা প্রয়োগ করা একটি ইন্টারফেসে ঘোষণা করা হয়েছিল এবং আবার সাবক্লাসে ঘোষণা করা হয়েছিল। সাবক্লাস থেকে সদৃশটি সরিয়ে ফেললে ত্রুটিটি চলে গেছে।
ইলিকেপ্রোগ্রামিং

22

আমার অ্যাপ্লিকেশনটিতে কোনও ক্লাস সংজ্ঞায়িত করে যে অন্য কোনও অ্যাসেমব্লির কোনও রেফারেন্স নেই যখন ত্রুটি বার্তায় পদ্ধতিটি ব্যবহার করে I PEVifify চালানো আরও সহায়ক ত্রুটি দিয়েছে: "সিস্টেমটি নির্দিষ্ট করা ফাইলটি খুঁজে পাচ্ছে না।"


19

আমি একই বার্তাটি পেয়েছি এবং আমরা যা পেয়েছি তা এখানে: আমরা আমাদের প্রকল্পে তৃতীয় পক্ষের ঘর ব্যবহার করি। এগুলির একটি নতুন প্রকাশের বাইরে চলে যাওয়ার পরে আমরা আমাদের প্রকল্পটি নতুন সেটগুলি llsলকে নির্দেশ করে সফলভাবে সংকলিত করেছি iled

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

আমরা সমাবেশে একটি রেফারেন্স যুক্ত করেছি এবং ত্রুটিটি অদৃশ্য হয়ে গেছে।

  • ত্রুটি বার্তাটি বেশ বিভ্রান্তিকর ছিল, তবে সঠিক দিকের দিকে সঠিক বা সঠিক নির্দেশ দেওয়া হয়েছে (সঠিক পদ্ধতি, ভুল বার্তা)।
  • আমরা প্রশ্নে পদ্ধতিটি ব্যবহার না করেও ব্যতিক্রমটি ব্যর্থ হয়েছিল।
  • যা আমাকে প্রশ্নের দিকে নিয়ে যায়: যদি এই ব্যতিক্রমটি কোনও ক্ষেত্রে নিক্ষেপ করা হয় তবে সংকলক কেন এটি বাছাই করে না?

17

নিম্নলিখিত পরিস্থিতিতে আমি এই ত্রুটিটি পেয়েছি।

  • উভয় অ্যাসেমব্লিশি এ এবং বি রেফারেন্স সিস্টেম. ওয়েবে.এমভিসি সংস্করণ 3.0.0.0
  • বিধানসভা একটি রেফারেন্সিং বি বি এবং এমন একটি ক্লাস ছিল যা বিধানসভা বি থেকে ইন্টারফেস প্রয়োগ করে এমন পদ্ধতিগুলির সাথে যেগুলি সিস্টেম.ওয়েব.এমভিসি থেকে ক্লাস ফিরিয়েছিল।
  • এসেম্বলি এ সিস্টেম.ওয়েব.এমভিসি সংস্করণ 4.0.0.0 এ আপগ্রেড করা হয়েছে
  • এসেম্বলি সি নীচের কোডটি চালিয়েছিল (ফের্টপিন.ক্ল্যাশস। যোগাযোগ বিধানসভা এতে অন্তর্ভুক্ত ছিল):

var target = Assembly.GetAssembly(typeof(FertPin.Classes.Contact));

আমার জন্য সমাধানটি সিস্টেম বি.বি.তে ওয়েব.এমভিসি রেফারেন্সটি 4.0.0.0.0 এ আপগ্রেড করছিল। এখন সুস্পষ্ট মনে হচ্ছে!

মূল পোস্টার ধন্যবাদ!


আমার অনুরূপ কিছু ছিল তবে সংস্করণগুলি সহ অন্যভাবে। .NET 2 কে লক্ষ্য করে একটি পদ্ধতি, System.Windows.forms এর v2 থেকে একটি টাইপ ফিরে এসেছে। .NET 4-টার্গেট অ্যাসেমব্লিতে এটির ওভাররাইড বাস্তবায়ন একই ধরণের ফিরে এসেছে তবে System.Windows. Forms এর ভি 4 থেকে। এটি সূক্ষ্ম সংকলন করেছে তবে প্রতিচ্ছবি কেবলমাত্র লোডফ্রোম পছন্দ করে নি।
স্টিফেন হিউলেট

.NET2 কে একটি .NET4 অ্যাপ্লিকেশনের প্রতিবিম্বের কেবলমাত্র প্রসঙ্গে লক্ষ্য করে যা লোড টাইপগুলি লোড করার কারণে আমার অনুরূপ সমস্যা হয়েছিল। অ্যাপডোমাইন.রফলেশনআপনিঅ্যাস্পেস রিসার্ভ ইভেন্টে তাদের .NET4 কাউন্টারগুলিতে .NET2 কোর এসেম্বলির সমস্ত অ্যাসেম্বলি অনুরোধগুলি পুনর্নির্দেশ করে আমি সমস্যার আশপাশে কাজ করেছি।
চকোটা

এটি আমার সমস্যা ছিল :) ধন্যবাদ!
আন্টোয়ান এলেনকোভ

13

অন্য সময় আপনি এই ত্রুটিটি পেতে পারেন যদি আপনার স্বাক্ষরিত অ্যাসেমব্লির কোনও ভুল সংস্করণ থাকে। এটি এই কারণেটির জন্য সাধারণ লক্ষণ নয়, তবে আমি যেখানে এটি পেয়েছি সেখানকার দৃশ্যটি এখানে

  • একটি এসপ নেট প্রকল্পে অ্যাসেমব্লিং এ এবং বি বিধানসভা বি রয়েছে, বিটির শক্ত নামকরণ করা হয়েছে

  • অ্যাসেম্বলি এ অ্যাক্টিভেটর ব্যবহার করে assembly

  • সি বর্তমানে বিলম্বিত বিধানসভার একটি পুরানো সংস্করণ উল্লেখ করে নির্মিত হয়েছিল

আশা করি যে কাউকে সাহায্য করে - এটি বের করতে আমার বয়স কয়েক হয়েছিল।


9

আমার এই ত্রুটিটিও ছিল, এটি কোনও সিপিইউ এক্সিমের কারণে যে কোনও সিপিইউ অ্যাসেমব্লিকে রেফারেন্স করে যার ফলে একটি x86 অ্যাসেমব্লিকে রেফারেন্স করা হয়েছিল।

ব্যতিক্রমটি মাই অ্যাপ্লিকেশনগুলির একটি ক্লাসে একটি পদ্ধতি সম্পর্কে অভিযোগ করেছে mp বাস্তবায়ন (যে কোনও সিপিইউ), যা মাইএপ.আইন্টারফেসগুলি (যে কোনও সিপিইউ) উদ্ভূত হয়েছে, কিন্তু fuslogvw.exe এ আমি মাই অ্যাপ থেকে ব্যতিক্রম একটি ভুল ফর্ম্যাট সহ প্রোগ্রাম লোড করার প্রয়াস পেয়েছি found .কমোনটাইপস (x86) যা উভয়ই ব্যবহার করে।


6

আমি এটিতে ফিরে আসছি ... এগুলির উত্তরগুলির মধ্যে অনেকগুলি সমস্যাটি কী তা ঠিক করার উপায় নয় তবে তা ব্যাখ্যা করার দুর্দান্ত কাজ করে।

এর সমাধান হ'ল আপনার প্রকল্পগুলি প্রকাশিত ডিরেক্টরিতে বিন ফাইলগুলি ম্যানুয়ালি মুছে ফেলা। এটি সমস্ত রেফারেন্স পরিষ্কার করবে এবং প্রজেক্টকে সর্বশেষতম ডিএলএল ব্যবহার করতে বাধ্য করবে।

আমি প্রকাশের সরঞ্জামগুলি মুছুন ফাংশনটি ব্যবহার করার পরামর্শ দিচ্ছি না কারণ এটি আইআইএস ফেলে দেয়।


আমি এটি একটি নন-ওয়েব প্রকল্পেও কেস হিসাবে পেয়েছি - আমি অন্য এক সমাবেশে (লোডফিল ব্যবহার করে) প্রতিফলিত করছিলাম, পরিষ্কার এবং পুনর্নির্মাণ কাজ করেনি - উভয় প্রকল্পের বিন ফোল্ডার থেকে সমস্ত ফাইল মুছে ফেলা কাজ করেছিল। পরামর্শের জন্য চিয়ার্স!
d219

এই নির্দিষ্ট প্রকল্পটি স্থানীয়ভাবে আইআইএস ব্যবহার করছে বলে (দুর্ভাগ্যক্রমে) আমাকে আইআইএস রিসেটও করতে হয়েছিল।
টিম উইলসন

6

এই ত্রুটি বার্তায় আমার কাছে আরও একটি রহস্যজনক সমাধান রয়েছে। আমি নেট টার্গেট ফ্রেমওয়ার্কটি নেট 4.0 থেকে 4.6 থেকে আপগ্রেড করেছি এবং আমার ইউনিট পরীক্ষার প্রকল্পটি যখন "বিল্ডিং" করার চেষ্টা করছিলাম তখন আমাকে "সিস্টেম.TypeLoadException ... একটি বাস্তবায়ন হয় না" ত্রুটি প্রদান করে। এটি একইভাবে অনুমানযোগ্য-বাস্তবায়িত পদ্ধতি সম্পর্কে একটি দ্বিতীয় ত্রুটি বার্তা দিয়েছে যা বলেছিল যে "'বিল্ডশ্যাডো টাস্ক' কাজটি অপ্রত্যাশিতভাবে ব্যর্থ হয়েছিল।" এখানকার কোনও পরামর্শই সহায়তা বলে মনে হয়নি, তাই আমি "বিল্ডশ্যাডো টাস্ক" সন্ধান করেছি এবং এমএসডিএন-তে একটি পোস্ট পেয়েছি যা ইউনিট পরীক্ষার প্রকল্পের সিএসপিজেজ ফাইল থেকে এই লাইনগুলি মুছে ফেলার জন্য একটি পাঠ্য সম্পাদক ব্যবহার করতে আমাকে নেতৃত্ব দিয়েছে।

<ItemGroup>
  <Shadow Include="Test References\MyProject.accessor" />
</ItemGroup>

এর পরে, উভয় ত্রুটি চলে গিয়েছিল এবং প্রকল্পটি নির্মিত হয়েছিল।


এটা আমার জন্য উত্তর ছিল। .NET 4.5 থেকে 4.6 এ আপগ্রেড করার পরে আমি এই ত্রুটির মধ্যে পড়েছিলাম।
twblamer

6

আমি অটোফ্যাক এবং প্রচুর গতিশীল সমাবেশের লোড ব্যবহার করছি এমন প্রসঙ্গে আমি এই ত্রুটির মুখোমুখি হয়েছি।

অটোফ্যাক রেজোলিউশন অপারেশন করার সময়, রানটাইম কোনও অ্যাসেমব্লিকে লোড করতে ব্যর্থ হয়। ত্রুটি বার্তাটি অভিযোগ করেছে Method 'MyMethod' in type 'MyType' from assembly 'ImplementationAssembly' does not have an implementation। উপসর্গ ঘটে উইন্ডোজ সার্ভার 2012 R2 হলো VM- র চালু রাখার জন্য, কিন্তু হয়নি না উইন্ডোজ 10 বা উইন্ডোজ সার্ভার 2016 ভার্চুয়াল মেশিনের উপর ঘটবে।

ImplementationAssemblySystem.Collections.Immutable1.1.37 রেফারেন্স করা হয়েছে এবং এতে একটি IMyInterface<T1,T2>ইন্টারফেসের প্রয়োগ রয়েছে , যা পৃথকভাবে সংজ্ঞায়িত করা হয়েছিল DefinitionAssemblyDefinitionAssemblyরেফারেন্স করা হয়েছে System.Collections.Immutable1.1.36।

যে পদ্ধতিগুলি থেকে IMyInterface<T1,T2>"প্রয়োগ করা হয়নি" টাইপের পরামিতি রয়েছে IImmutableDictionary<TKey, TRow>, যা সংজ্ঞায়িত হয়েছে System.Collections.Immutable

System.Collections.Immutableপ্রোগ্রাম ডিরেক্টরিটিতে পাওয়া আসল অনুলিপিটি ছিল সংস্করণ 1.1.37। আমার উইন্ডোজ সার্ভার 2012 আর 2 ভিএম-এ, জিএসি-তে System.Collections.Immutable1.1.36 এর একটি অনুলিপি রয়েছে । উইন্ডোজ 10 এবং উইন্ডোজ সার্ভার 2016 এ, System.Collections.Immutableজিএসিতে 1.1.37 এর একটি অনুলিপি রয়েছে । লোডিংয়ের ত্রুটি কেবল তখনই ঘটেছিল যখন জিএসিটিতে ডিএলএল এর পুরানো সংস্করণ থাকে।

সুতরাং, সমাবেশ লোড ব্যর্থতার মূল কারণটি ছিল মেলে না System.Collections.Immutable। ইন্টারফেস সংজ্ঞা এবং বাস্তবায়নের জন্য অভিন্ন চেহারা পদ্ধতি স্বাক্ষরগুলি ছিল, তবে আসলে এর বিভিন্ন সংস্করণের উপর নির্ভরশীল System.Collections.Immutable, যার অর্থ রানটাইম ইন্টারফেস সংজ্ঞাটির সাথে মেলে বাস্তবায়ন শ্রেণিকে বিবেচনা করে না।

আমার অ্যাপ্লিকেশন কনফিগার ফাইলে নিম্নলিখিত বাঁধাই পুনঃনির্দেশ যুক্ত করা সমস্যার সমাধান করেছে:

<dependentAssembly>
        <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-1.1.37.0" newVersion="1.1.37.0" />
</dependentAssembly>

আমি আপনাকে জিজ্ঞাসা করতে পারি যে আপনি এটি কিভাবে পেলেন? আপনি কি কোনও মানহীন ডিবাগিং কৌশল ব্যবহার করেছেন? আমি একই ত্রুটি পেয়েছি তবে আমি মনে করি এটি অপ্রাপ্তদের জন্য আমার কাছে ইতিমধ্যে বাধ্যতামূলক পুনর্নির্দেশের কারণে এটি একটি ভিন্ন dll দ্বারা সৃষ্ট।
t3chb0t

1
হুম। এটি একটি সময় আগে ছিল। আমি মনে করি যে মূল সূত্রটি ছিল "অবিহিত" পদ্ধতির পরামিতিগুলি থেকে ব্যবহৃত ধরণের System.Collections.Immutable। আমার ক্ষেত্রে প্রভাবিত পদ্ধতিতে অন্য অনেক প্রার্থীর প্যারামিটার বা রিটার্নের ধরণ ছিল না। আমি উল্লেখ করেছি আইএলএসপি ব্যবহার করে সংজ্ঞায়িত "সংজ্ঞায়নের ব্যবস্থা" এবং "বাস্তবায়নশৈলী" ডিএলএল-এর নির্ভরতা মেটাডেটা পরিদর্শন করার জন্য, উল্লেখগুলির সংস্করণগুলিতে বিশেষভাবে তাকান।
হাইড্রিজারাম

1
অনেক ধন্যবাদ! ;-) আমি ভিজ্যুয়াল স্টুডিওর জন্য আইএলপিএস এক্সটেনশনটি ইনস্টল করেছি এবং রেফারেন্স শাখার দিকে চেয়েছিলাম, System.Net.Httpপ্যাকেজের জন্য একটি ছিল , আমি dependentAssemblyএটির জন্য উপাদান যুক্ত করে আইএলএসপি থেকে তথ্যটি অনুলিপি করেছি এবং এটি এখন কাজ করছে, ত্রুটিটি চলে গেছে!
t3chb0t

এটিকে কোডে রেখে এবং মানগুলি দেখার জন্য ঠিক পরে ব্রেকআপপয়েন্ট রেখে সিস্টেম.নেট.এইচটিপি-র দুটি সংস্করণ লোড করা হয়েছিল: অ্যাপডোমাইন.কোর্নডোমাইন থেকে একটি লোডডেম্বসিলিংস = এ থেকে কোন খারাপ জিএসি অ্যাসেম্বলিটি ছিল তা খুঁজে পেয়েছি। গেটএসমিলিগুলি () অর্ডারবাই এ। ফুলনাম সিলেক্ট করুন (এ। ফুলনাম, ক);
পাওলি 4

5

আমি এটি "হীরা" আকারের প্রকল্প নির্ভরতার সাথে পেয়েছি:

  • প্রকল্প এ প্রকল্প বি এবং প্রকল্প ডি ব্যবহার করে
  • প্রকল্প বি প্রকল্পের ডি ব্যবহার করে

আমি প্রজেক্ট এ নয় তবে প্রকল্প বি নয়, যা প্রকল্প বি কে প্রকল্প ডি ডিএল এর পুরাতন সংস্করণ "ইনজেক্ট" করার অনুমতি দিয়েছে


16
হ্যাঁ, আমি এটিকে রেনো সমস্যা হিসাবে ভাবতে চাই
বেনজল

আমি মনে করি আমার এই সমস্যার অনুরূপ সংস্করণ ছিল তবে কেবল দুটি প্রকল্পের মধ্যে। আমি নিজেই নতুনটি সংকলন করেছি। এরপরে এটি সাবলীলভাবে কাজ করে।
Departamento বি

5

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

var types = AppDomain.CurrentDomain.
   GetAssemblies().
   ToList().
   SelectMany( s => s.GetTypes() /* exception thrown in this call */ )
;

উপরের ব্যতিক্রমটি নিক্ষেপ করা হয়েছিল, অভিযোগ করে যে বাস্তবায়নকারী ওয়েব ধরণের ইন্টারফেস পদ্ধতিগুলি বাস্তবে প্রয়োগ করা হয়নি। ওয়েব প্রকল্পের binফোল্ডারে ম্যানুয়ালি অ্যাসেম্বলি মুছে ফেলা সমস্যার সমাধান করেছে।


4

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


4

যদি এসেম্বলিটি লোডফ্রোম (স্ট্রিং) ব্যবহার করে লোড করা হয় এবং অ্যাসেম্বলি.লয়েড (বাইট []) ব্যবহার করে ইতিমধ্যে লোড করা একটি অ্যাসেমব্লিকে উল্লেখ করা হচ্ছে তবে এই ত্রুটিও ঘটতে পারে।

উদাহরণস্বরূপ আপনি প্রধান অ্যাপ্লিকেশনটির রেফারেন্সড অ্যাসেমব্লিসিগুলিকে সংস্থান হিসাবে এম্বেড করেছেন তবে আপনার অ্যাপ্লিকেশনটি নির্দিষ্ট ফোল্ডার থেকে প্লাগ-ইন লোড করে।

লোডফ্রম ব্যবহারের পরিবর্তে আপনার বোঝা ব্যবহার করা উচিত। নিম্নলিখিত কোডটি কাজটি করবে:

private static Assembly LoadAssemblyFromFile( String filePath )
{
    using( Stream stream = File.OpenRead( filePath ) )
    {
        if( !ReferenceEquals( stream, null ) )
        {
            Byte[] assemblyData = new Byte[stream.Length];
            stream.Read( assemblyData, 0, assemblyData.Length );
            return Assembly.Load( assemblyData );
        }
    }
    return null;
}

3

পরিচালিত সি ++ জড়িত এই ধরণের সমস্যার আরেকটি ব্যাখ্যা।

যদি আপনি পরিচালিত সি ++ ব্যবহার করে তৈরি একটি অ্যাসেমব্লিতে সংজ্ঞায়িত এমন একটি ইন্টারফেসের উপরে চাপ দেওয়ার চেষ্টা করেন যার বিশেষ স্বাক্ষর থাকে তবে স্টাবটি তৈরি হওয়ার পরে আপনি ব্যতিক্রম পাবেন।

রাইনো মোকস এবং এটি ব্যবহার করে এমন কোনও উপহাসের কাঠামোর ক্ষেত্রে এটি সত্য System.Reflection.Emit

public interface class IFoo {
  void F(long bar);
};

public ref class Foo : public IFoo {
public:
  virtual void F(long bar) { ... }
};

ইন্টারফেস সংজ্ঞা নিম্নলিখিত স্বাক্ষর পায়:

void F(System.Int32 modopt(IsLong) bar)

মনে রাখবেন যে সি ++ টাইপ করে longমানচিত্রগুলি System.Int32(অথবা কেবল intসি # তে)। রাইনো মোকস মেইলিং লিস্টে আয়েন্দে রহিয়েনের বক্তব্য অনুসারেmodopt সমস্যাটি কিছুটা অস্পষ্ট হয়ে পড়ে ।


আমি ডেটাটাইপ ব্যবহার করার সময় আমার এই ত্রুটি হয়েছিল System::Byte। আমি স্বাক্ষরটি পরিবর্তিত হয়ে একটি গ্রহণ করি unsigned shortএবং আকাশ আবার নীল হয়ে যায়।
কৃষিক্ষা

3

আমি সবেমাত্র এমভিসি 3 থেকে এমভিসি 5 তে একটি সমাধান আপগ্রেড করেছি এবং আমার ইউনিট পরীক্ষা প্রকল্প থেকে একই ব্যতিক্রম পাওয়া শুরু করেছি।

পুরানো ফাইলগুলির সন্ধানের সমস্ত রেফারেন্স চেক করে, ঘটনাটি আবিষ্কার করে আমার ইউনিট পরীক্ষা প্রকল্পে এমভিসি-র জন্য আমাকে কিছু বাইন্ডাইরিডাইরেক্ট করতে হবে।

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

3

আমার ক্ষেত্রে এটি উইনফর্মস সরঞ্জাম বাক্সটি পুনরায় সেট করতে সহায়তা করেছিল।

Formডিজাইনারে একটি খোলার সময় আমি ব্যতিক্রম পেয়েছি ; তবে কোডটি সংকলন এবং চালানো সম্ভব হয়েছিল এবং কোডটি প্রত্যাশার সাথে আচরণ করা হয়েছিল। স্থানীয়ভাবে UserControlআমার রেফারেন্সযুক্ত লাইব্রেরির একটি ইন্টারফেস প্রয়োগকারী ক্ষেত্রে ব্যতিক্রম ঘটেছে । এই গ্রন্থাগারটি আপডেট হওয়ার পরে ত্রুটিটি উদ্ভূত হয়েছিল।

এটি UserControlউইনফর্মস সরঞ্জাম বাক্সে তালিকাভুক্ত করা হয়েছিল। সম্ভবত ভিজ্যুয়াল স্টুডিও লাইব্রেরির পুরানো সংস্করণে একটি রেফারেন্স রেখেছিল বা কোথাও একটি পুরানো সংস্করণ ক্যাশে করছে।

আমি এই পরিস্থিতি থেকে কীভাবে পুনরুদ্ধার করেছি তা এখানে:

  1. উইনফর্মস সরঞ্জাম বাক্সে ডান ক্লিক করুন এবং Reset Toolboxপ্রসঙ্গ মেনুতে ক্লিক করুন । (এটি সরঞ্জামবাক্স থেকে কাস্টম আইটেমগুলি সরিয়ে দেয়)।
    আমার ক্ষেত্রে টুলবক্স আইটেমগুলি তাদের ডিফল্ট অবস্থায় পুনরুদ্ধার করা হয়েছিল; তবে পয়েন্টার-তীরটি টুলবক্সে অনুপস্থিত ছিল।
  2. ভিজ্যুয়াল স্টুডিও বন্ধ করুন
    আমার ক্ষেত্রে ভিজ্যুয়াল স্টুডিও একটি লঙ্ঘন ব্যতিক্রম সহ বাতিল এবং বাতিল করা হয়েছে।
  3. ভিজ্যুয়াল স্টুডিও পুনরায় চালু করুন।
    এখন সবকিছু সুচারুভাবে চলছে।

3

এফডব্লিউআইডাব্লু, যখন আমি একটি কনফিগার ফাইল থাকি তখন এটি একটি রেফারেন্সড অ্যাসেমব্লির অস্তিত্বহীন সংস্করণে পুনঃনির্দেশিত হয়। জয়ের জন্য ফিউশন লগ!


3

আমি এই ত্রুটিটি পেয়েছি কারণ আমার কাঠামোর assembly.৪ সংস্করণে একটি অ্যাসেম্বলি 'সি' তে আমার ক্লাস ছিল, এসেম্বলি 'এ' তে একটি ইন্টারফেস বাস্তবায়িত হয়েছিল যা ফ্রেমওয়ার্কের ৪.৪.১ সংস্করণে ছিল এবং সমাবেশে বেস ক্লাস হিসাবে দায়িত্ব পালন করছিল 'বি' যা ফ্রেমওয়ার্কের ৪.৫.১ সংস্করণে ছিল। এসেম্বলি 'বি' লোড করার চেষ্টা করার সময় সিস্টেমটি ব্যতিক্রম ছুঁড়ে দিয়েছে। তদ্ব্যতীত, আমি তিনটি অ্যাসেমব্লিতে .NET 4.5.1 লক্ষ্য করে কিছু নুগেট প্যাকেজ ইনস্টল করেছি। কোনও কারণে, নুগেটের উল্লেখগুলি বি 'বি' তে প্রদর্শিত না হলেও এটি সফলভাবে তৈরি হচ্ছে।

দেখা গেল যে আসল সমস্যাটি হ'ল অ্যাসেমব্লিগুলি একটি নুগেট প্যাকেজের বিভিন্ন সংস্করণ উল্লেখ করছে যা ইন্টারফেস এবং ইন্টারফেসের স্বাক্ষর সংস্করণগুলির মধ্যে পরিবর্তিত হয়েছিল contained


3

আমার ক্ষেত্রে আমি এর আগে mylibরেপোর বাইরে ভাইবোন ফোল্ডারে একটি প্রকল্প উল্লেখ করেছি - আসুন আমরা এটি কল করি v1.0

|-- myrepo
|    |-- consoleApp
|    |-- submodules
|         |-- mylib (submoduled v2.0)
|-- mylib (stale v1.0)

পরে আমি এটি সঠিকভাবে করেছি এবং এটি একটি গিট সাবমডিউলের মাধ্যমে ব্যবহার করেছি - এটি কল করতে দিন v2.0। একটি প্রকল্প consoleAppঅবশ্য সঠিকভাবে আপডেট হয়নি। এটি এখনও v1.0আমার গিট প্রকল্পের বাইরের পুরানো প্রকল্পটিকে উল্লেখ করছে ।

বিভ্রান্তিমূলকভাবে , যদিও এটি *.csprojস্পষ্টতই ভুল ছিল এবং ইঙ্গিত করছে v1.0, ভিজ্যুয়াল স্টুডিও আইডিই v2.0প্রকল্প হিসাবে পথ দেখিয়েছে ! এফ 12 ইন্টারফেসটি পরিদর্শন করতে এবং ক্লাসটি v2.0সংস্করণেও গিয়েছিল।

সংকলক দ্বারা বিন ফোল্ডারে স্থাপন করা সমাবেশটি ছিল v1.0সংস্করণ, তাই মাথা ব্যথা।

আইডিই আমার কাছে মিথ্যা কথা বলেছে ত্রুটিটি উপলব্ধি করা এটি অতিরিক্ত শক্ত করে তুলেছে।

সমাধান : প্রজেক্টের উল্লেখগুলি মুছে ফেলা হয়েছে ConsoleAppএবং সেগুলি পুনরায় সংযুক্ত করে।

জেনারেল টিপ: স্ক্র্যাচ থেকে সমস্ত অ্যাসেমব্লিগুলি পুনরায় কম্পাইল করুন (যেখানে সম্ভব, অবশ্যই নুগেট প্যাকেজগুলির পক্ষে পারেন না) এবং bin\debugফোল্ডারে ডেটটাইম স্ট্যাম্পগুলি পরীক্ষা করুন । যে কোনও পুরানো তারিখের সমাবেশগুলি আপনার সমস্যা


3

আমি প্রায় একই সমস্যা সম্মুখীন। আমি কী কারণে এই ত্রুটি ঘটাচ্ছে তা আমার মাথা আঁচড়ানো ছিল। আমি ক্রস চেক করেছি, সমস্ত পদ্ধতি প্রয়োগ করা হয়েছিল।

গুগলিংয়ের সময় আমি এই লিঙ্কটি অন্যদের মধ্যে পেয়েছি। @ পল ম্যাকলিংকের মন্তব্যের ভিত্তিতে, এই দুটি পদক্ষেপটি সমস্যার সমাধান করেছে।

  1. ভিজ্যুয়াল স্টুডিও পুনরায় চালু করুন
  2. পরিষ্কার, বিল্ড (পুনর্নির্মাণ)

এবং ত্রুটি চলে গেছে

ভিএস প্লাগইন পুনরায় আরম্ভ করুন

ধন্যবাদ পল :)

আশা করি এটি এই ত্রুটিটি পেরিয়ে আসা কাউকে সহায়তা করবে :)


2

আমার ইউনিটসেট চালানোর সময় আমি এই সমস্যায় পড়েছিলাম। অ্যাপ্লিকেশনটি ঠিকঠাক হয়ে গেছে এবং কোনও ত্রুটি ছাড়াই। আমার ক্ষেত্রে সমস্যার কারণ হ'ল আমি পরীক্ষা প্রকল্পগুলির বিল্ডিং বন্ধ করে দিয়েছিলাম। আমার পরীক্ষার প্রকল্পগুলির বিল্ডিং পুনরায় চালু করা সমস্যার সমাধান করেছে।


2

আমি ভিজ্যুয়াল স্টুডিও প্রো ২০০৮ এ দেখেছি যখন দুটি প্রকল্প একই নামের সাথে অ্যাসেমব্লি তৈরি করেছিল, একটি শ্রেণিবদ্ধ এসডিএফ.ডিএল, এবং একটি যা এসিডএফ.এক্সে নামের সাথে লাইবকে রেফার করে। আমি যখন রেফারেন্সিং অ্যাসেমব্লির নাম পরিবর্তন করি তখন ব্যতিক্রমটি চলে যায়


2

এর সহজ অর্থ হ'ল বাস্তবায়ন প্রকল্পটি আমার ক্ষেত্রে পুরানো। ইন্টারফেস সম্বলিত ডিএলএল পুনর্নির্মাণ করা হয়েছিল কিন্তু বাস্তবায়নের বাসি ছিল না।


2

এই ত্রুটিটি এখানে রাখছি।

একটি externপদ্ধতি যুক্ত করা হয়েছে, তবে আমার পেস্টটি ত্রুটিযুক্ত ছিল। DllImportAttributeএকটি আউট মন্তব্য লাইনে করা হয়।

/// <returns>(removed for brevity lol)</returns>[DllImport("user32.dll")] 
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool IsWindowVisible(IntPtr hWnd);

বৈশিষ্ট্যটি নিশ্চিত করা বিষয়টিকে উত্সের মধ্যে আসলে অন্তর্ভুক্ত করা হয়েছিল।


2

ডাব্লুসিএফ পরিষেবাতে এটি পেয়েছিলাম কারণ একটি x86 বিল্ড টাইপ নির্বাচিত হয়েছে, যার ফলে বিনগুলি বিনের পরিবর্তে বিন \ x86 এর অধীনে বাস করতে পারে। যে কোনও সিপিইউ বাছাইয়ের ফলে পুনরায় সংযুক্ত ডিএলএলগুলি সঠিক স্থানে যেতে পারে (আমি কীভাবে প্রথম স্থানে এটি ঘটলাম সে সম্পর্কে বিস্তারিতভাবে যেতে চাই না)।


1

আমারও একই সমস্যা ছিল। আমি বুঝতে পেরেছি যে মূল সমাবেশটি দ্বারা লোড করা আমার অ্যাসেমব্লির "কপিরাইট লোকাল" সত্য হিসাবে সেট করা নিয়ে কিছু উল্লেখ রয়েছে। এই স্থানীয় রেফারেন্সগুলির অনুলিপিগুলি একই ফোল্ডারে অন্যান্য রেফারেন্সগুলির সন্ধান করছিল, যা বিদ্যমান ছিল না কারণ অন্যান্য রেফারেন্সগুলির "কপি স্থানীয়" মিথ্যাতে সেট করা হয়েছিল। "দুর্ঘটনাক্রমে" অনুলিপি করা তথ্যগুলি মুছে ফেলার পরে ত্রুটিটি চলে গেছে কারণ মূল প্রোগ্রামটি উল্লেখগুলির সঠিক অবস্থানগুলি সন্ধানের জন্য সেট করা হয়েছিল। স্পষ্টতই রেফারেন্সগুলির স্থানীয় অনুলিপিগুলি কল করার ক্রমটি খারাপ করেছিল কারণ এই স্থানীয় অনুলিপিগুলি মূল প্রোগ্রামটিতে উপস্থিত আসলগুলির পরিবর্তে ব্যবহৃত হয়েছিল।

গৃহস্থালির বার্তাটি হ'ল প্রয়োজনীয় সমাবেশটি লোড করতে লিংকটি হারিয়ে যাওয়ার কারণে এই ত্রুটিটি উপস্থিত হয় appears


1

আমার ক্ষেত্রে, আমি TypeBuilderএকটি প্রকার তৈরি করতে ব্যবহার করার চেষ্টা করছিলাম । TypeBuilder.CreateTypeএই ব্যতিক্রম নিক্ষেপ। আমি অবশেষে উপলব্ধি করেছিলাম যে কোনও ইন্টারফেস প্রয়োগ করতে সহায়তা করে এমন কোনও পদ্ধতির জন্য MethodAttributes.Virtualফোন করার সময় আমাকে গুণাবলী যুক্ত করতে হবে TypeBuilder.DefineMethod। এটি কারণ এই পতাকা ছাড়াই, পদ্ধতিটি ইন্টারফেসটি বাস্তবায়িত করে না, পরিবর্তে একই স্বাক্ষর সহ একটি নতুন পদ্ধতি (এমনকি কোনও নির্দিষ্টকরণ ছাড়াই MethodAttributes.NewSlot)।


1

সংযোজন হিসাবে: যদি আপনি কোনও ন্যুগেট প্যাকেজ আপডেট করেন যা কোনও ফেকস অ্যাসেমবিলি তৈরি করতে ব্যবহৃত হয়েছিল তাও ঘটতে পারে। বলুন আপনি একটি ন্যুগেট প্যাকেজের ভি 1.0 ইনস্টল করেছেন এবং "জাল লাইবারারি ১.০.০.০.০. ফ্যাক্স" একটি ফেকস অ্যাসেমবিলি তৈরি করেন। এর পরে, আপনি নুগেট প্যাকেজের নতুন সংস্করণে আপডেট করেন, v1.1 বলুন যা ইন্টারফেসে একটি নতুন পদ্ধতি যুক্ত করেছে। ফেকস লাইব্রেরিটি এখনও লাইব্রেরির v1.0 অনুসন্ধান করছে। কেবল জাল সমাবেশ সরিয়ে এটি পুনঃজেনার করুন। যদি এটি সমস্যা ছিল তবে এটি সম্ভবত এটি সংশোধন করবে।


1

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

আমি কেবল অনুমান করতে পারি যে উইন্ডোজ আপডেটটি একটি নতুন ইনস্টল করেছে, তবে এমনকি এটি স্পষ্টভাবে উল্লেখ করা, বাইন্ডিং পুনঃনির্দেশগুলি আপডেট করা ইত্যাদি ... ... শেষ ফলাফলটি কেবলমাত্র "মানক" তে পদ্ধতিটির স্বাক্ষরটি বদলেছিল আমি অনুমান করি আপনি বলতে পারেন।

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