ত্রুটি CS1705: "যার রেফারেন্স অ্যাসেম্বলির চেয়ে বেশি সংস্করণ রয়েছে"


109

আমি এখনই এটির জন্য কিছুটা সন্ধান করেছি এবং এর সমাধানও করতে পারিনি। আমি নিম্নলিখিত ত্রুটি বার্তা পেয়েছি:

Compiler Error Message: CS1705: Assembly 'My.Model, Version=1.1.4422.23773, Culture=neutral, 
PublicKeyToken=bfde95ba233094b2' uses 
'Common, Version=3.3.4273.24368, Culture=neutral, PublicKeyToken=bfde95ba233094b2' 
which has a higher version than referenced assembly
'Common, Version=3.3.4269.17112, Culture=neutral, PublicKeyToken=bfde95ba233094b2'

c:\WINDOWS\assembly\GAC_MSIL\Common\3.3.4269.17112__bfde95ba233094b2\Common.dll: 
(Location of symbol related to previous error)

ওয়েব সার্ভারটি সার্ভার 2003 চালাচ্ছে I সর্বোচ্চ তালিকাভুক্ত সংস্করণটি ছিল 3.3.4269.17112

আমি dll সংস্করণটি সহ অনুলিপি: 3.3.4273.24368 বিধানসভা ডিরেক্টরিতে। তারপরে আমি আমার কোডটি পুনরায় সংকলন এবং পুনরায় স্থাপন করেছি (সম্ভবত ওভারকিল তবে ওহ ভাল)। যখন আমি একটি নতুন সেশনে আমার ব্রাউজারটি খুলি এবং আবার সাইট ইউআরএল গিয়েছিলাম তখনও আমি একই বার্তা পেয়েছি।

আমি উইন্ডোজ এক্সপ্লোরার ব্যবহার করতে এবং উচ্চ-সংস্করণিত কমন.ডিল এখন যাচাই করা আছে তা যাচাই করতে পারি।

এই সমস্যাটি সমাধান করার জন্য আমি আর কী দেখতে পারি? পুরানো সংস্করণে নির্দেশ করতে আমি আমার সমাবেশে রেফারেন্সটি পরিবর্তন করতে চাই না।


2
ক্রেজি *.*সংস্করণ সংখ্যা। সবকিছু পুনর্নির্মাণ, নিশ্চিত হওয়ার একমাত্র উপায়।
হান্স প্যাস্যান্ট

উত্তর:


39

আপনার চেষ্টা করার জন্য 3 টি ধারণা:

  1. আপনার সমস্ত ঘরগুলি একই সাধারণ সংস্করণের সাথে সংকলিত রয়েছে তা নিশ্চিত করুন।
  2. ফাইল সমাধানের পরিবর্তে আপনার সমাধানে আপনার প্রকল্প রেফারেন্স রয়েছে কিনা তা পরীক্ষা করুন Check
  3. আপনার ওয়েবকনফাইগে বাইন্ডিং পুনঃনির্দেশগুলি ব্যবহার করুন । ( ওয়েবেব্যাক মেশিনে মূলত লিঙ্কিত সংস্করণ )


68

আমার এই ত্রুটি হয়েছিল কারণ "পুনর্নির্মাণ" সত্যই পুনর্নির্মাণ ছিল না।

সমাধান: ভিজ্যুয়াল স্টুডিওটি বন্ধ করুন, সত্যিই যান এবং বিন ফোল্ডারটি মুছুন, তারপরে পুনর্নির্মাণ করুন, এটি আরও ভাল কাজ করতে পারে।

এছাড়াও, কখনও কখনও ভিজ্যুয়াল স্টুডিও রেফারেন্স সম্পর্কে মিথ্যা থাকে, তাই HintPathআপনার .csprojফাইলগুলিতে চেক করুন ।


2
এই আমার বেকন সংরক্ষণ করেছে। লোকাল চালানো ভাল ছিল, তবে আমি একটি পরিবর্তন প্রকাশ করেছি এবং জিনিসগুলি অশুভ। অনলাইন বিন ফোল্ডারটির সামগ্রী মুছে ফেলা জিনিসগুলিকে পুনরায় সিঙ্কে ফিরে আসতে বাধ্য করে। ধন্যবাদ!
পিস্টান

40

আপনি যদি নুগেট ব্যবহার করছেন তবে 'সমাধানের জন্য নিউগেট প্যাকেজগুলি পরিচালনা করুন' worth এবং প্যাকেজটি সন্ধান করছে যা সমস্যা সৃষ্টি করছে এবং আপডেটগুলি আঘাত করছে। এরপরে এটি সমস্ত প্যাকেজটি সর্বশেষতম সংস্করণে নিয়ে আসে এবং সমস্যার সমাধান করে।

এটি দ্রুত এবং সহজ হিসাবে শটটি মূল্যবান।


2
ধন্যবাদ এটি আমার জন্য সমাধান করেছে। আমার পরিস্থিতি যদিও কিছুটা আলাদা ছিল: এটি আপডেটগুলিতে তালিকাভুক্ত ছিল না তাই আমাকে ইনস্টল করতে হবে এবং একটি উইন্ডো ছিল যা প্রতি প্রকল্পের প্যাকেজ সংস্করণ দেখিয়েছিল। আমি কিছু পুরানো মডিউলগুলি একটি সেমি এর একটি নতুন সংস্করণে আপগ্রেড করছিলাম যাতে আমাকে সমস্যা প্যাকেজগুলিতে যেতে হবে, সেগুলি নির্বাচন করতে হবে এবং ইনস্টল ক্লিক করতে হবে। হতে পারে কারণ সিমেন্টগুলি স্রেফ নুগেট ব্যবহারের জন্য পরিবর্তিত হয়েছিল তবে আপনি আমাকে অনেক ক্লান্তিকর csprojসম্পাদনাটি সংরক্ষণ করেছেন !
rtpHarry

3
প্রকল্প স্তরের পরিবর্তে সমাধান স্তরে নুগেট প্যাকেজগুলি আপডেট করার বিষয়টি নিশ্চিত করুন।
জেস

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

30

আমার সমস্যাটি হ'ল আমার কাছে একই প্রকল্পের 2 টি আলাদা কপি রেফারেন্সিংয়ের 2 টি প্রকল্প ছিল যার বিভিন্ন সংস্করণ ছিল। আমি উভয়কে মুছে ফেলা এবং তারা একই ডিএল ফাইলটি রেফারেন্স করে তা স্থির করেছিলাম।


13

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

যদি এটি হয় তবে জিএসি থেকে দ্বিতীয় সমাবেশটি আনইনস্টল করতে gacutil.exe ইউটিলিটিটি ব্যবহার করুন। উদাহরণস্বরূপ, যদি এটি 64৪-বিট সমাবেশ হয়:

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64\gacutil.exe -u <assembly_name>

দু'বছর পরে এবং আপনার পরামর্শটি কবজির মতো কাজ করেছে। অবজেক্ট ব্রাউজারে রেফারেন্সগুলি এটি বাছাই করা হয়েছে।
ceebreenk

3

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


2

আমার দলটি আমাদের বিল্ড পরিবেশের মধ্যেই এই সমস্যার মধ্যে পড়েছিল problem সমস্যাটি .csproj ফাইলের <HintPath> উপাদানটির মধ্যে পার্থক্যের কারণে ছিল।

আমাদের সাধারণ সমাবেশটি আমাদের রেফারেন্স অ্যাসেম্বলিসমুক্ত ডিরেক্টরিটিতে সঠিক আপেক্ষিক পথ ছিল। পূর্ববর্তী ডিরেক্টরি কাঠামো থেকে নির্ভরশীল সমাবেশটির একটি পথ ছিল। সমাধানটি ডিভাইসগুলিতে সফলভাবে সংকলিত হয়েছে কারণ জিএসি: সি ফাইলগুলিতে ইনস্টল করা সঠিক সংস্করণটির উপর নির্ভরশীলদের রেফারেন্সটি সমাধান করেছে। বিল্ড এনভায়রনমেন্টটি অ্যাসেমব্লির একটি উত্তরাধিকার ইনস্টল ছিল (যদিও এটির কোনওটি থাকা উচিত ছিল না) যে এটি পিছনে পড়ে এবং এভাবে ত্রুটি। একটি পাঠ্য সম্পাদকটিতে <HintPath> আপডেট করা সমস্যাটি সংশোধন করেছে।


2

সমাধানটির মধ্যে একাধিক প্রকল্পে নুগেট প্যাকেজগুলি পৃথক হলে সমস্যাটি দেখা যায়।

সমাধানের সমস্ত প্রকল্পের সাথে একটি সাধারণ সংস্করণে নুগেট প্যাকেজগুলি আপডেট করে আপনি এটি ঠিক করতে পারেন


1

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


1

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

আমি রেফারেন্সটি সন্ধান করেছি এবং পাবলিককি টোকেনটিকে পুরানোটির সাথে উল্লেখ করা থেকে পরিবর্তন করেছি।

আমি আশা করি এটিও সাহায্য করবে



0

হস্তনির্মিত Dll এর সংগ্রহ ফোল্ডারের
উত্তর প্রদান বিভিন্ন লাইব্রেরি থেকে Dll-ফাইলের জন্য একটি আবর্জনা ফোল্ডার থাকে
lib, source, libs, ইত্যাদি
আপনি ভিসুয়াল স্টুডিও মধ্যে যদি আপনি আপনার সমাধান (ক ফার সময় জন্য) খুলতে হবে এই কষ্ট পেতে পারেন। এবং আপনার dll এর সংগ্রহ ফোল্ডারটি কোনওরকম জন্য মিস হয়েছে বা একটি কংক্রিটের dll-file মিস হয়েছে।

ভিজ্যুয়াল স্টুডিও নিজের জন্য কোনও কিছুতে dll এর রেফারেন্সটি নিঃশব্দে চেষ্টা করবে। যদি ভিএস সফল হয় তবে আপনার স্থানীয় সমাধানের জন্য একটি নতুন রেফারেন্স অবিচল থাকবে। অন্যান্য ক্লোন / চেকআউটগুলির জন্য নয়।

অর্থাৎ আপনার <HintPath>অগ্রাহ্য করা হবে এবং আপনার প্রকল্পের ফাইল (.csproj) পরিবর্তন করা হবে না।
আমার একটি উদাহরণ হিসাবে

<Reference Include="DocumentFormat.OpenXml, Version=2.0.5022.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\..\..\lib\DocumentFormat.OpenXml.dll</HintPath>
</Reference>

এটি কোনও ফোল্ডার DocumentFormat.OpenXmlথেকে C:\Program Files (x86)\Open XML SDK\V2.5\libনয় উল্লেখ করা হবে solution\..\lib

দ্রুত কাজ

  • আপনার dll এর সংগ্রহ ফোল্ডারটি চেক করুন এবং পুনরুদ্ধার করুন
  • সমাধান এক্সপ্লোরার থেকে না আন প্রকল্প , তারপর পুনঃলোড প্রকল্প

ডান ওয়ার্কারআউন্ড হ'ল নুগেট প্যাকেজ ম্যানেজারে স্থানান্তরিত করা।


0

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


0

কোনও ওয়েবসাইট প্রকল্পের উল্লেখগুলি তার ওয়েব কোডফাইগ ফাইলটিতে সংরক্ষিত থাকে। ত্রুটিটি ঠিক করতে সেখানে রেফারেন্স আপডেট করুন।

আমি ওয়েবকনফাইগ ফাইলের রেফারেন্সগুলি ভুলে গিয়েছিলাম তা বুঝতে পেরে আমার সমাধানের সমস্ত রেফারেন্সগুলিতে কিছু সময় ব্যয় করেছি।


0

ইউনিটটিস্টিংপ্রজেক্টে আমার একই সমস্যা ছিল, যেখানে মেইনপ্রজেক্টে আমি "System.Web.Mvc, Version = 3.0.0.0" এবং ইউনিট টেস্টিংপ্রজেক্টে আমি "System.Web.Mvc, সংস্করণ = 3.0.0.1" ব্যবহার করছিলাম

নিম্নলিখিতটি পরিবর্তন করুন <Reference Include="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <HintPath>..\packages\Microsoft.AspNet.Mvc.3.0.50813.1\lib\net40\System.Web.Mvc.dll</HintPath> </Reference>


0

আমি এপিসভার সার্ভারটি আমাদের সাইটে যুক্ত করার পরে এবং এপিএসভার ফাইন্ডের জন্য সম্পর্কিত নিউগেট প্যাকেজ ইনস্টল করার পরে এটি পেয়েছি।

সমাধানটি সহজ ছিল: সমস্ত এপিএসভার সম্পর্কিত অ্যাড-অনগুলিও আপডেট করুন (সেগুলি সম্পর্কিত না হলেও: সিএমএস, সিএমএস.টিনিএমসিই, সিএমএস.ইউআই ইত্যাদি)

সমস্ত সম্ভাব্য এপিসবারের অ্যাড-অনগুলি এবং পুনরায় সংশোধন করার পরে, ত্রুটিটি চলে গেছে।


0

আমার দৃশ্যে, আমি আমার ডটনেটোর অ্যাপ্লিকেশনটির জন্য .csproj ফাইল সম্পাদনা করেছি। আমি লক্ষ্য করেছি যে TargetFramework ট্যাগের একটি মান ছিল netcoreapp2.1 এবং RuntimeFrameworkVersion ট্যাগের একটি মান 2.0.0 । তাই আমি পরিবর্তিত RuntimeFrameworkVersion করার 2.1.0 , সংরক্ষিত, পুনরায় আরম্ভ বনাম এবং পুনর্নির্মিত এবং তারপর ত্রুটি সমাধান।

আশা করি এটা তোমাকে সাহায্য করবে ...

শুভকামনা,

Sugeshan


-1

আপনার প্রকল্পে রেফারেন্সগুলি সন্ধান করুন System.Web.Mvc সংস্করণটি দেখুন।

এর পরে রাইটস ক্লিক -> অ্যাসেমব্লি এবং সার্চ system.web.mvc এ ক্লিক করুন এবং সেটআপ করুন।

সমস্যা এই বিভিন্ন সংস্করণ ঘটায় সমাহারগুলি

সম্পাদনা করুন: নুগেট প্যাকেজ পরিচালনা করা এবং আপডেটগুলি ইনস্টল করার চেয়ে (যদি আপনার একাধিক প্রকল্প থাকে তবে সেগুলিতেও আপডেট ইনস্টল করুন))

গুরুত্বপূর্ণ আপডেট হ'ল মাইক্রোসফট.এএসপনেট.এমভিসি এবং মাইক্রোসফ্ট. নেট.কম্পেলাররা এটি ভুলে যাবেন না!


-1

আমাদের দলে আমরা গিট দিয়ে বিভিন্ন কম্পিউটারে কাজ করছিলাম। কেউ আপডেট করেছে dllএবং আমার কাছে তা ছিল না। আমি স্রেফ আমার নির্ভরতা উল্লেখগুলি এবং সমস্যার সমাধান করেছি updated


-3

আমারও একই সমস্যা ছিল, আমি একটি ডিএলএল তৈরি করেছি, অর্থাৎ এডিএল, যা অন্যান্য ডিএলএল, অর্থাৎ বিডিএল রেফারেন্স করেছে।

আমি একটি অ্যাপ্লিকেশন সি.এক্স.সি তৈরি করেছি এবং ডিএলএলস এ.ডি.এল এবং বি.ডি.এল.

সমাধান - সিডেক্স থেকে বিডেলের রেফারেন্সটি সরিয়ে দেওয়ার পরে আমি সমস্যাটি সমাধান করতে সক্ষম হয়েছি।

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

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