এমএসবি 3247 সমাধান করা - একই নির্ভরশীল অ্যাসেমব্লির বিভিন্ন সংস্করণের মধ্যে বিরোধ খুঁজে পেয়েছে


427

এমবিল্ডের সাথে সংকলন করার সময় একটি .NET 3.5 সমাধান এই সতর্কতার সাথে শেষ হয়েছিল।

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

আমি ভিএস ২০১০ বিটা ২ থেকে এমএসবিল্ড ব্যবহার করার চেষ্টা করেছি (সংযুক্ত নিবন্ধটি সিএলআরের পরবর্তী সংস্করণে এটি ঠিক করা হয়েছে) তবে এটি কোনও বিবরণ দেয় নি (সম্ভবত স্থির পোস্ট বিটা 2)

আরও ভাল (আরও স্বয়ংক্রিয়) পদ্ধতির আছে?


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

উত্তর:


576

"এমএসবিল্ড প্রকল্প বিল্ড আউটপুট ভার্বোসিটি "টিকে" বিশদ "বা তারপরে পরিবর্তন করুন। এটি করার জন্য, নিম্নলিখিত ধাপগুলি অনুসরণ করুন:

  1. বিকল্প সংলাপ ( সরঞ্জাম -> বিকল্পসমূহ ... ) আনুন ।
  2. বাম-হাতের গাছটিতে, প্রকল্পগুলি এবং সমাধান নোডটি নির্বাচন করুন এবং তারপরে বিল্ড এবং রান নির্বাচন করুন ।
    • দ্রষ্টব্য: যদি এই নোডটি প্রদর্শিত না হয় তবে ডায়ালগের নীচে চেকবক্সটি সমস্ত সেটিংস দেখানো হয়েছে তা নিশ্চিত করুন ।
  3. প্রদর্শিত সরঞ্জাম / বিকল্প পৃষ্ঠাতে, এমএসবিল্ড প্রকল্প বিল্ড আউটপুট ভার্বোসিটি স্তরটি আপনার সংস্করণের উপর নির্ভর করে উপযুক্ত সেটিংয়ে সেট করুন:

  4. প্রকল্পটি তৈরি করুন এবং আউটপুট উইন্ডোটিতে দেখুন।

এমএসবিল্ড বার্তাগুলি দেখুন। ResolveAssemblyReferencesকাজের, যা কাজের যা থেকে MSB3247 করেন, আপনি এই বিশেষ সমস্যা ডিবাগ সাহায্য করা উচিত নয়।

আমার নির্দিষ্ট কেসটি স্কেল সার্ভারসির একটি ভুল উল্লেখ ছিল। নিচে দেখ. আমার কাছে দুটি প্রকল্প ছিল স্কেল সার্ভারসি'র দুটি ভিন্ন সংস্করণ উল্লেখ করে। আমি পুরানো সংস্করণ সহ প্রকল্পে গিয়েছি, রেফারেন্সটি সরিয়েছি এবং তারপরে সঠিক রেফারেন্স যুক্ত করেছি।

Target ResolveAssemblyReferences:
    Consider app.config remapping of assembly "System.Data.SqlServerCe, ..." 
        from Version "3.5.1.0" [H:\...\Debug\System.Data.SqlServerCe.dll] 
        to Version "9.0.242.0" [C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PublicAssemblies\System.Data.SqlServerCe.dll]
        to solve conflict and get rid of warning.
    C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets : 
        warning MSB3247: Found conflicts between different versions of the same dependent assembly.

রেফারেন্সড অ্যাসেমব্লির সংস্করণগুলি নির্ধারণ করতে আপনাকে প্রতিটি অ্যাসেম্বলি খোলার দরকার নেই।

  • আপনি প্রতিটি রেফারেন্সের বৈশিষ্ট্যগুলি পরীক্ষা করতে পারেন।
  • প্রকল্পের বৈশিষ্ট্যগুলি খুলুন এবং উল্লেখ বিভাগটির সংস্করণগুলি পরীক্ষা করুন।
  • একটি পাঠ্য সম্পাদক দিয়ে প্রকল্পগুলি খুলুন।
  • নেট প্রতিবিম্বক।

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

5
@ ডেভিড গার্ডিনার - সি # প্রকল্পগুলি ব্যবহার করার সময় আমি আপনার "মিথ্যা" বক্তব্যের সাথে একমত হব আমার অভিজ্ঞতায় সি # প্রকল্পগুলি রেফার্ড সংস্করণ এবং প্রকৃত সংস্করণ সংকলিত / সংযুক্ত সম্পর্কে বিভ্রান্ত হতে পারে। যখন এটি হয়, আমি সমাধানটি পরিষ্কার করি, ম্যানুয়ালি বিন এবং foldজ ফোল্ডারগুলি মুছুন, তারপরে অস্থায়ী প্রকল্পের সমাবেশগুলি% APPDATA% এ মুছুন। একটি পুনর্নির্মাণ সমাধান সাধারণত সমস্যাটি সমাধান করে। (ভিবি খুব কমই এই নির্দিষ্ট সমস্যাটি ভোগ করে))
এএমিসিকো

54
মানুষকে আউটপুট উইন্ডোটি ব্যবহার করতে বলার জন্য জয় win বিল্ড F5 + ত্রুটি তালিকার উইন্ডোর চেয়ে অনেক বেশি।
জেজেএস

2
যেমন এরিকহিমস্কার্ক তার উত্তরে উল্লেখ করেছেন, ভিজ্যুয়াল স্টুডিও ২০১০-তে আপনাকে রেজলভএস্যাপার্পিয়ারেন্সের আউটপুট দেখতে বিশদভাবে আউটপুট ভার্বোসিটি সেট করতে হবে।
রবিন ক্লাওয়ার্স

12
ইঙ্গিত: ভার্বোজ বিল্ড আউটপুটটিতে সঠিক স্থানটি খুঁজে পেতে, একটি পাঠ্য সম্পাদককে পাঠ্যটি অনুলিপি করুন, "একই নির্ভরশীল সমাবেশের বিভিন্ন সংস্করণের মধ্যে বিরোধ খুঁজে পেয়েছি" অনুসন্ধান করুন।
কনটাঙ্গো

133

মাইক হ্যাডলো AsmSpy নামক একটি সামান্য কনসোল অ্যাপ্লিকেশন পোস্ট করেছেন যা প্রতিটি সমাবেশের রেফারেন্সগুলি সুন্দরভাবে তালিকাভুক্ত করে:

Reference: System.Net.Http.Formatting
        4.0.0.0 by Shared.MessageStack
        4.0.0.0 by System.Web.Http

Reference: System.Net.Http
        2.0.0.0 by Shared.MessageStack
        2.0.0.0 by System.Net.Http.Formatting
        4.0.0.0 by System.Net.Http.WebRequest
        2.0.0.0 by System.Web.Http.Common
        2.0.0.0 by System.Web.Http
        2.0.0.0 by System.Web.Http.WebHost

এমএসবিল্ড আউটপুট নির্ভর করার চেয়ে সতর্কতা এমএসবি 3247 এর নীচে পৌঁছানোর এটি একটি দ্রুততম উপায়।


1
AsmSpy দুর্দান্ত, আপনার কেবল এটি মনে রাখতে হবে যে আপনি তৃতীয় পক্ষের ডিএলএল এর সাথে মিল খুঁজে পেয়েছেন না। সাধারণত, স্ট্যান্ডার্ড লাইব্রেরিগুলিতে উল্লেখের সাথে মেলে না এমন সংস্করণগুলি এই সতর্কতাগুলির কারণ ঘটাবে না (এবং আপনি এগুলি দেখতে পাবেন)।
টড থমসন

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

হাতিয়ারটি দুর্দান্ত, তবে এটি সমস্ত পরিস্থিতিতে কার্যকর হয় না। কমপক্ষে একটি নেট নেট প্রকল্পের জন্য এটি আমার জন্য সংঘর্ষ সম্পর্কিত উল্লেখ সংস্করণগুলি দেখায় না। + মিসবিল্ড আউটপুটটি পাথ এবং সমস্ত নিয়ে প্রশ্নে DLL এর নাম দেয়।
টোমম


আপনি আমাকে কয়েক ঘন্টা কাজ বাঁচিয়েছেন! এটি বিশদ আউটপুট মাধ্যমে পড়তে সাহায্য করেছে, কিন্তু একবার আমি এটি করা আপনার সরঞ্জাম দিয়ে আবার যাচাই করা সহজ ছিল।
নর্মান এইচ

22

কিছু সময় @ এমিসিকো উত্তর যথেষ্ট নয়। আমার ক্ষেত্রে, আমি আউটপুট উইন্ডোতে ত্রুটিটি খুঁজে পাইনি তাই আমি নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করে একটি লগ ফাইল তৈরি এবং এটি বিশ্লেষণ করার সিদ্ধান্ত নিয়েছি:

  1. বিল্ড লগটি কোনও ফাইলে সংরক্ষণ করা হচ্ছে ... https://msdn.microsoft.com/en-us/library/ms171470.aspx

    msbuild MyProject.proj /fl /flp:logfile=MyProjectOutput.log;verbosity=detailed

  2. পাঠ্যটি সন্ধান করুন: warning MS...বা নির্দিষ্ট সতর্কতা সম্পর্কিত তথ্য: (যেমন লাইন 9293) Found conflicts between different versions...এবং সংঘাতের ত্রুটির সম্পূর্ণ বিবরণ এই বার্তার উপরে থাকবে (যেমন লাইন 9277)There was a conflicts between... ত্রুটির বার্তাটি সন্ধান করুন

ভিজ্যুয়াল স্টুডিও 2013


আউটপুটে 3277 অনুসন্ধান করার জন্য দুর্দান্ত ইঙ্গিত।
sfuqua

21

আমি খুঁজে পেয়েছি (কমপক্ষে ভিজ্যুয়াল স্টুডিও 2010 এ) সমস্যাটি চিহ্নিত করতে আপনাকে আউটপুট ভার্বোসিটি কমপক্ষে বিশদতে সেট করতে হবে।

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


1
সরঞ্জামগুলিতে যান -> বিকল্পগুলি-> প্রকল্পগুলি এবং সমাধানগুলি>> আউটপুট ভার্বোসিটি সেট করতে বিল্ড এবং রান করুন।
ফারশিদ

8

আমার একই ত্রুটি ছিল এবং অন্যান্য উত্তরগুলির সাথে এটি বের করতে পারি না। আমি দেখেছি যে আমরা নিউগেট প্যাকেজগুলিকে "একীকরণ" করতে পারি।

  1. সমাধানটিতে রাইট ক্লিক করুন
  2. নিউজ প্যাকেজ পরিচালনা করুন ক্লিক করুন
  3. ট্যাব একীভূত করুন এবং একই সংস্করণে আপডেট করুন।

7

এই সতর্কতাটি ডিফল্ট ASP.NET MVC 4 বিটার জন্য উত্পন্ন এখানে দেখুন

ইন, কোনও প্রচ্ছদ এই সতর্কতাটি আপনার প্রকল্পের জন্য .csproj ফাইল ম্যানুয়ালি সম্পাদনা করে মুছে ফেলা যায়।

সংশোধন করুন ........: রেফারেন্স অন্তর্ভুক্ত = "System.Net.Http"

পড়তে ......: রেফারেন্স অন্তর্ভুক্ত = "System.Net.Http, সংস্করণ = 4.0.0.0"


1
আমি এটি অনুসরণ করেছি এবং ত্রুটিটি অদৃশ্য হয়ে গেছে। কীভাবে বা কেন তা এখনও জানি না, আমি ভিএস 2010 দিয়ে একটি এমভিসি 4 প্রকল্প শুরু করে তারপর ভিএস ২০১২ এ স্থানান্তরিত করেছি। তবে সংস্করণ বৈশিষ্ট্য যুক্ত করে ত্রুটিটি অদৃশ্য হয়ে গেছে। ধন্যবাদ
মাইওম

6

নির্ভরতা পাঠক ব্যবহার করুন

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

একাধিক সংস্করণে সমাবেশগুলি উল্লেখ করা সন্ধান করা

$ dep | awk '{ print $1 " " $2; print $4 " " $5 }' | awk '{ if (length(versions[$1]) == 0) versions[$1] = $2; if (versions[$1] != $2) errors[$1] = $1; }  END{ for(e in errors) print e } ' 
System.Web.Http            

এই অস্পষ্ট কমান্ড লাইনটি Dep.exe সঞ্চালিত হয় এবং এরপরে আউটপুট দুটিবার পাইপ করে

  • পিতা-মাতার এবং সন্তানকে একটি একক কলামে রাখুন (এই পিতা-মাতার সেই সন্তানের উপর নির্ভরশীল এই সত্যটি প্রকাশ করতে প্রতিটি লাইনে একটি পিতা বা মাতা থাকে এবং একটি শিশু থাকে)
  • তারপরে একটি এসোসিয়েটিভ অ্যারে ব্যবহার করে এক ধরণের 'গ্রুপ বাই' করুন

আপনার সমাবেশটিতে এই সমাবেশটি কীভাবে টানা হয়েছিল তা বোঝা যাচ্ছে

$ dep myproject/bin | grep -i System\.Web\.Http
MyProject-1.0.0.0 >> System.Web.Http.Web-5.2.3.0 2 ( FooLib-1.0.0.0 )
MyProject-1.0.0.0 >> System.Web.Http.Web-4.0.0.0 2 ( BarLib-1.0.0.0 )
FooLib-1.0.0.0 > System.Web.Http.Web-5.2.3.0 1
BarLib-1.0.0.0 > System.Web.Http.Web-4.0.0.0 1 

এই উদাহরণে, সরঞ্জামটি আপনাকে দেখায় যে System.Web.Http 5.2.3 আপনার FooLib এর নির্ভরতা থেকে আসে তবে 4.0.0 সংস্করণ বারলিব থেকে আসে।

তারপরে আপনার মধ্যে পছন্দ আছে

  • একই সংস্করণটি ব্যবহার করার জন্য লিবের মালিকদের বোঝানো
  • তাদের একটি ব্যবহার বন্ধ করুন
  • সর্বশেষতম সংস্করণটি ব্যবহার করতে আপনার কনফিগারেশনের ফাইলটিতে বাইন্ডিং পুনঃনির্দেশ যুক্ত করা হচ্ছে

উইন্ডোজে এই জিনিসটি কীভাবে চালানো যায়

আপনার যদি ইউনিক্স ধরণের শেল না থাকে তবে আপনাকে চালাতে সক্ষম হওয়ার আগে একটি ডাউনলোড করতে হবে awkএবং grep। নিম্নলিখিতগুলির মধ্যে একটি ব্যবহার করে দেখুন


4

আমারও এই সমস্যা ছিল এবং এমিসিকোর পরামর্শও ব্যবহার করে সমস্যাটি আবিষ্কার করুন (যদিও ওয়ার্বোসিটি স্তরটি বিশদে নির্ধারণ করতে হয়েছিল।

অপরাধীটি সন্ধান করার পরেও সমস্যাটি বেশ সোজা ছিল।

পটভূমি: আমি আমার প্রকল্পটি VS2008 থেকে VS2010 এ আপগ্রেড করেছি। VS2008 এ লক্ষ্য কাঠামোটি 3.5 ছিল এবং আমি যখন এটিকে VS2010 এ এনেছিলাম তখন এটিকে 4 (পূর্ণ) এ পরিবর্তন করেছি। আমি ক্রিস্টাল রিপোর্ট সহ কয়েকটি তৃতীয় পক্ষের উপাদানগুলিও আপগ্রেড করেছি।

এটি বেশিরভাগ সিস্টেমে রেফারেন্স সরিয়ে নিয়েছে যেখানে সংস্করণ 4.0.০.০.০ এ নির্দেশ করে কিন্তু একটি দম্পতি স্বয়ংক্রিয়ভাবে পরিবর্তন করা হয়নি (সিস্টেম এবং সিস্টেম. ওয়েবে. সার্ভিসেস) এবং এখনও ২.০.০.০ এ খুঁজছেন। স্ফটিক প্রতিবেদনগুলি 4.0.0.0 উল্লেখ করছে এবং তাই এখানে বিরোধ দেখা দিচ্ছিল। সমাধান এক্সপ্লোরারটিতে সহজভাবে প্রথম সিস্টেম লাইব্রেরিতে কার্সারটি রেখে, কার্সারটি নীচে রেখে 2.0.0.0 এর কোনও রেফারেন্স সন্ধান করে, নতুন 4.0.0.0 সংস্করণ সরিয়ে এবং পুনরায় যুক্ত করার কৌশলটি করেছিল।

আশ্চর্যের বিষয়টি হ'ল বেশিরভাগ তথ্যসূত্রগুলি সঠিকভাবে আপডেট হয়েছিল এবং যদি এটি ক্রিস্টাল রিপোর্টগুলির জন্য না হয় তবে আমি সম্ভবত কখনই লক্ষ্য করতাম না ...


2

আমি মাইক হ্যাডলো অ্যাপ্লিকেশনটির ভিত্তিতে একটি অ্যাপ্লিকেশন তৈরি করেছি : এসএমএসপিএস

আমার অ্যাপ্লিকেশনটি জিইউআই সহ একটি ডাব্লুপিএফ অ্যাপ্লিকেশন এবং আমার হোম ওয়েবসার্ভার থেকে ডাউনলোড করা যেতে পারে: AsmSpyPlus.exe

কোডটি এখানে পাওয়া যায়: গিটহাব

গুই নমুনা


2

এখানে উল্লিখিত হিসাবে , আপনাকে অব্যবহৃত রেফারেন্সগুলি সরিয়ে ফেলতে হবে এবং সতর্কতাগুলি চলে যাবে।


1

এএসপি.এনইটি বিল্ড ম্যানেজার ওয়েবসাইটগুলি বর্ণানুক্রমিকভাবে ফোল্ডারগুলির মধ্যে দিয়ে তৈরি করছে এবং প্রতিটি ফোল্ডারের জন্য এটি নির্ভরতা নির্ধারণ করে এবং প্রথমে এবং তারপরে নির্বাচিত ফোল্ডারটি নির্ভরতা নির্ধারণ করে।

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

তারপরে পরবর্তী ফোল্ডারটি (~ / ফাইল-কেন্দ্র / নিয়ন্ত্রণ) মূল ফোল্ডারের উপর নির্ভরশীল which / যা s / নিয়ন্ত্রণগুলির উপর নির্ভরশীল, সুতরাং this / নিয়ন্ত্রণগুলি ফোল্ডারটি আবার তৈরি করা হবে কেবল তখনই পৃথক করা নিয়ন্ত্রণগুলি তাদের নিজস্ব সমাবেশে এখন একই সমাবেশে যোগ দেওয়া হয়েছে বিচ্ছিন্ন সমাবেশের সাথে অন্যান্য নিয়ন্ত্রণগুলি এখনও উল্লেখ করা হচ্ছে being

সুতরাং এই মুহুর্তে 2 সমাবেশে (কমপক্ষে) একই নিয়ন্ত্রণ রয়েছে এবং বিল্ডটি ব্যর্থ হয়।

যদিও আমরা এখনও জানি না কেন এটি ঘটেছিল, তবে আমরা কন্ট্রোলস ফোল্ডারের নামটি জেডকন্ট্রোলে পরিবর্তন করে এটি ঘিরে কাজ করতে সক্ষম হয়েছি, এইভাবে এটি কেবলমাত্র after / ফাইল-কেন্দ্র / নিয়ন্ত্রণের আগে তৈরি করা হয়নি এবং কেবল এটির পরে এটি নির্মিত হয়েছে এটি করা উচিত।


1

দ্রুত ঠিক করা:

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


1

কখনও কখনও AutoGenerateBindingRedirectsযথেষ্ট (এমনকি সঙ্গে GenerateBindingRedirectsOutputType) হয় না । সমস্ত There was a conflictএন্ট্রি সন্ধান করা এবং একে একে ম্যানুয়ালি ফিক্স করা বিরক্তিকর হতে পারে, তাই আমি একটি ছোট্ট কোড লিখেছি যা লগ আউটপুটকে পার্স করে এবং সেগুলি আপনার জন্য উত্পন্ন করে (ডাম্প stdout):

// Paste all "there was a conflict" lines from the msbuild diagnostics log to the file below
const string conflictFile = @"C:\AssemblyConflicts.txt";

var sb = new StringBuilder();
var conflictLines = await File.ReadAllLinesAsync(conflictFile);
foreach (var line in conflictLines.Where(l => !String.IsNullOrWhiteSpace(l)))
{
    Console.WriteLine("Processing line: {0}", line);

    var lineComponents = line.Split('"');
    if (lineComponents.Length < 2) 
        throw new FormatException("Unexpected conflict line component count");

    var assemblySegment = lineComponents[1];
    Console.WriteLine("Processing assembly segment: {0}", assemblySegment);
    var assemblyComponents = assemblySegment
                              .Split(",")
                              .Select(kv => kv.Trim())
                              .Select(kv => kv.Split("=")
                              .Last())
                              .ToArray();

    if (assemblyComponents.Length != 4) 
        throw new FormatException("Unexpected conflict segment component count");

    var assembly = assemblyComponents[0];
    var version = assemblyComponents[1];
    var culture = assemblyComponents[2];
    var publicKeyToken = assemblyComponents[3];

    Console.WriteLine("Generating assebmly redirect for Assembly={0}, Version={1}, Culture={2}, PublicKeyToken={3}", assembly, version, culture, publicKeyToken);
    sb.AppendLine($"<dependentAssembly><assemblyIdentity name=\"{assembly}\" publicKeyToken=\"{publicKeyToken}\" culture=\"{culture}\" /><bindingRedirect oldVersion=\"0.0.0.0-{version}\" newVersion=\"{version}\" /></dependentAssembly>");
}

Console.WriteLine("Generated assembly redirects:");
Console.WriteLine(sb);

টিপ: এমএসবিল্ড বাইনারি এবং স্ট্রাকচার্ড লগ ভিউয়ার ব্যবহার করুন এবং কেবলমাত্র প্রকল্পের দ্বন্দ্বগুলির জন্য বাধ্যতামূলক পুনর্নির্দেশগুলি উত্পন্ন করুন যা সতর্কতাটি প্রকাশ করে (এটি কেবলমাত্র there was a conflictউপরের কোডের জন্য ইনপুট পাঠ্য ফাইলে এই লাইনগুলি পেরিয়ে গেছে [ AssemblyConflicts.txt])।


0

(অভ্যন্তরীণ) নির্ভরতা বিবেচনায় না নিয়েই সহজ উপায়:

  1. "সলিউশন এক্সপ্লোরার" খুলুন।
  2. "সমস্ত ফাইল দেখান" এ ক্লিক করুন
  3. "তথ্যসূত্র" প্রসারিত করুন
  4. বাকিগুলির চেয়ে কিছুটা আলাদা আইকন সহ আপনি একটি (বা আরও) রেফারেন্স দেখতে পাবেন। সাধারণত এটি হলুদ বাক্স সহ এটির একটি নোট নেওয়ার পরামর্শ দেয়। শুধু এটি অপসারণ।
  5. রেফারেন্সটি আবার যুক্ত করুন এবং আপনার কোডটি সংকলন করুন।
  6. এখানেই শেষ.

আমার ক্ষেত্রে, মাইএসকিউএল রেফারেন্সে একটি সমস্যা ছিল। কোনওভাবে, আমি সমস্ত উপলব্ধ রেফারেন্সের তালিকার নীচে এর তিনটি সংস্করণ তালিকা করতে পারলাম। আমি উপরে 1 থেকে 6 প্রক্রিয়া অনুসরণ করেছি এবং এটি আমার পক্ষে কাজ করে।


0

ম্যাক সম্প্রদায়ের সংযোজনের জন্য ভিজ্যুয়াল স্টুডিও:

হিসাবে AMissico এর উত্তর লগ স্তর পরিবর্তন প্রয়োজন আছে এবং তন্ন তন্ন ASMSpy কিংবা ASMSpyPlus একটি ক্রস-প্ল্যাটফর্ম সমাধান হিসেবে পাওয়া যায়, এখানে Mac এর জন্য ভিসুয়াল স্টুডিও জন্য একটি সংক্ষিপ্ত উপরন্তু হল:

https://docs.microsoft.com/en-us/visualstudio/mac/compiling-and-building

এটি ভিজ্যুয়াল স্টুডিও সম্প্রদায়ে → পছন্দসমূহ ... → প্রকল্পগুলি → লগ তৈরি করুন → শব্দভাজন


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