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


371

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

একই নির্ভরশীল অ্যাসেমব্লির বিভিন্ন সংস্করণের মধ্যে বিরোধ খুঁজে পেয়েছিল যা সমাধান করা যায়নি। এই রেফারেন্স দ্বন্দ্বগুলি বিল্ড লগে তালিকাভুক্ত করা হয় যখন লগ ভার্বোসিটি বিস্তারিতভাবে সেট করা থাকে। সি: \ প্রোগ্রাম ফাইল (x86) \ এমএসবিল্ড \ 12.0 \ বিন \ মাইক্রোসফট.কমন.কর্নিয়ার ভার্সন.টারাজেটস

আমি যখন এই বার্তাটি ডাবল ক্লিক করি তখন এটি সি: \ প্রোগ্রাম ফাইলগুলি (x86) \ এমএসবাইল্ড \ 12.0 \ বিন \ মাইক্রোসফট.কমন.কর্নিয়ার ভার্সন.টারাগেটস ফাইলটি খোলে কিন্তু আমি এতে কিছুই বুঝতে পারি না।

আমি ওয়েবের জন্য ভিজ্যুয়াল স্টুডিও এক্সপ্রেস 2013 ব্যবহার করছি।

আমি কীভাবে ভুল করব এবং কোন ডিএলএল দিয়ে এবং কীভাবে আমি সতর্কতাটি দূরে সরিয়ে দেব?


2
আরো দেখুন ... stackoverflow.com/questions/1871073/...
SteveC

2
আমি মাইক্রোসফট কানেক্ট প্রস্তাবনার পেশ বার্তায় ডিএলএল নাম অন্তর্ভুক্ত করা connect.microsoft.com/VisualStudio/feedback/details/2619450
মাইকেল Freidgeim

উত্তর:


513

এটা: এসও এর নিজস্ব @ নিক ক্র্যাভারের এই স্টাফটিতে একটি হত্যাকারী নিবন্ধ রয়েছে যা আপনার পড়া উচিত


অন্য প্রতিক্রিয়াগুলি এটিকে বলার পরেও তারা এটিকে স্পষ্ট করে না, তাই আমি করব ...

ভিএস ২০১৩.২-তে, উদ্ধৃত তথ্যের নিঃসরণকে ট্রিগার করতে আসলে আপনাকে বার্তাটি পড়তে হবে না যা এতে বলে:

সি: \ প্রোগ্রাম ফাইলগুলি (x86) \ এমএসবিল্ড \ 12.0 \ বিন \ মাইক্রোসফট.কমন.কর্নিয় ভার্সন.টারাজেটস (1697,5): সতর্কতা এমএসবি 3277: একই নির্ভরশীল অ্যাসেমব্লির বিভিন্ন সংস্করণের মধ্যে বিরোধ খুঁজে পেয়েছে যা সমাধান করা যায় নি। এই রেফারেন্স দ্বন্দ্বগুলি বিল্ড লগে তালিকাভুক্ত করা হয় যখন লগ ভার্বোসিটি বিস্তারিতভাবে সেট করা থাকে

এটি ভুল (বা কমপক্ষে এটি ভিজ্যুয়াল স্টুডিওর কয়েকটি সংস্করণের জন্য ছিল - এটি VS2015 আপডেট 3 বা তার পরে আপডেট হওয়া ঠিক আছে বলে মনে হয়)। পরিবর্তে এটি ডায়াগনস্টিকের দিকে ( টুলস-> বিকল্পগুলি-> প্রকল্প এবং সমাধানগুলি-> বিল্ড এন্ড রান চালান , এমএসবিল্ড প্রজেক্ট বিল্ড আউটপুট ভার্বোসিটি সেট করুন ) এর পরিবর্তে আপনি বার্তা দেখতে পাবেন যেমন:

"নিউটনসফট.জসন, সংস্করণ = 6.0.0.0, সংস্কৃতি = নিরপেক্ষ, পাবলিক্যকিটোকেন = 30ad4fe6b2a6aeed" এবং "নিউটনসফট.জসন, সংস্করণ = 6.0.5.17707, সংস্কৃতি = নিরপেক্ষ, পাবলিককি টোকেন = 30 এডিএফএফ 2 বি 6 এএইড" এর মধ্যে বিরোধ ছিল।

  • "নিউটনসফট.জসন, সংস্করণ = 6.0.0.0, সংস্কৃতি = নিরপেক্ষ, পাবলিককি টোকেন = 30ad4fe6b2a6aeed" নির্বাচন করা হয়েছিল কারণ এটি প্রাথমিক এবং "নিউটসনফট.জসন, সংস্করণ = 6.0.5.17707, সংস্কৃতি = নিরপেক্ষ, পাবলিককি টোকেন = 30 এডএফইএফ 2 বি 6 এএইড" ছিল না।

তারপর

  • Ctrl-Alt-O বিল্ড আউটপুট উইন্ডো যেতে
  • ড্রিলডাউনটি অনুসন্ধান করতে " বেছে নেওয়া হয়েছে " অনুসন্ধান করুন।

... এবং হ্যাঁ, [ডায়াগনস্টিক] বার্তার বিশদটি অনুসন্ধানকারীদের জন্য, এই অজ্ঞতার কাছে খবর ছিল যে শহরে একটি সম্মেলন আছে যেখানে সমস্ত 6.xসংস্করণ রয়েছে, অভ্যন্তরীণভাবে অ্যাসেম্বলি ভার্সন 6.0.0.0, অর্থাৎ কেবল সেমভের মেজর উপাদানটি বিধানসভায় চলে যায় সংস্করণ :)


3
ধন্যবাদ - বহু বছর ধরে ভিজ্যুয়াল স্টুডিও ব্যবহার করে আসছেন এবং বিল্ড লগে এটি গভীরভাবে খনন করার কোনও সমস্যা হয়নি। বিভিন্ন সমস্যা কিন্তু বুঝতে পেরে যে আমি যে তথ্যটি সন্ধান করছিলাম তা আমার সমস্যাটি কোথাও নির্গত হচ্ছে।
টিমোথি লি রাসেল

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

105
মেনু সরঞ্জামগুলি -> বিকল্পগুলি থেকে লগ ভার্বোসটি পরিবর্তন করতে, তারপরে প্রকল্প এবং সমাধানগুলি> বিল্ড এন্ড রান চালান
জেন

3
আমার ক্ষেত্রে, আমার তিনটি দ্বন্দ্ব ছিল এবং তাদের মধ্যে একটির অন্য দু'জনের জন্য দায়বদ্ধ। আমি নোটপ্যাডে আমার "বিস্তৃত" বিল্ড লগটি অনুলিপি করেছি, "বিবাদ" এর জন্য অনুসন্ধান করেছি, আমি স্বীকৃত রেফারেন্সের জন্য নিউগেট প্যাকেজ আপডেট করেছি এবং সমস্যাটি সমাধান হয়ে গেছে।
আইজাক লাইম্যান

@রোবটনিক সম্পাদনা পরামর্শের জন্য ধন্যবাদ [এটি অন্যরা অস্বীকার করেছিল]। আমি প্রকৃতপক্ষে উত্তরের নীচে তথ্য অন্তর্ভুক্ত করেছি তবে আশা করি উত্তরটি এখন যেমনটি ঠিক তেমনটি আপনার ইচ্ছা মত পরিষ্কার।
রুবেন বার্টেলিংক

76

কমান্ড লাইন থেকে আপনার সমাধানটি তৈরি করতে চালান msbuild Foo.sln /t:Rebuild /v:diag(থেকে C:\Program Files (x86)\MSBuild\12.0\bin) এবং আরও কিছু বিশদ পেতে, তারপরে .csproj.সতর্কতাটি লগ করে অনুসন্ধান করুন এবং সংস্করণে পৃথক হওয়া একই সাধারণ সমাবেশ ব্যবহার করে এমন অন্যান্য প্রকল্পগুলির রেফারেন্স এবং রেফারেন্সগুলি পরীক্ষা করুন।

সম্পাদনা করুন: আপনি সরাসরি VS2013 এ বিল্ড ভার্বোসিটি সেট করতে পারেন। Tools> Optionsমেনুতে যান তারপরে যান Projects and Solutionsএবং এমএসবিল্ড ভার্বোসিটি সেট করুন Diagnostic

সম্পাদনা করুন: আমি নিজেই একটি পেয়েছি বলে কিছু স্পষ্টতা। আমার ক্ষেত্রে সতর্কতাটি রেফার্পার প্রম্পট ব্যবহার করে রেফারেন্স যুক্ত সংলাপের বিপরীতে একটি রেফারেন্স যুক্ত করার কারণে হয়েছিল, যা ভি 4 এবং ভি 12 উভয়ই চয়ন করার জন্য উপলভ্য হলেও এটি সংস্করণহীন ছিল।

<Reference Include="Microsoft.Build, Version=12.0.0.0, ..." />
<Reference Include="Microsoft.Build.Framework" />

বনাম

<Reference Include="Microsoft.Build, Version=12.0.0.0, ..." />
<Reference Include="Microsoft.Build.Framework, Version=12.0.0.0, ..." />

ভার্সোবিটি সহ এমএসবিল্ড লগটিতে /v:diagএটি নীচের মত দেখাচ্ছে। কোন দুটি রেফারেন্সের মধ্যে বিরোধ রয়েছে তা বিবরণ দেওয়া: -

  There was a conflict between 
  "Microsoft.Build.Framework, Version=4.0.0.0, ..." and 
  "Microsoft.Build.Framework, Version=12.0.0.0, ...". (TaskId:16)

      "Microsoft.Build.Framework, Version=4.0.0.0, ..." was chosen because it was primary and 
      "Microsoft.Build.Framework, Version=12.0.0.0, ..." was not. (TaskId:16)

      References which depend on "Microsoft.Build.Framework, Version=4.0.0.0, ..." 
      [C:\...\v4.5.1\Microsoft.Build.Framework.dll]. (TaskId:16)

          C:\...\v4.5.1\Microsoft.Build.Framework.dll (TaskId:16)
            Project file item includes which caused reference "C:\...\v4.5.1\Microsoft.Build.Framework.dll". (TaskId:16)
              Microsoft.Build.Framework (TaskId:16)

      References which depend on "Microsoft.Build.Framework, Version=12.0.0.0, ..." 
      [C:\...\v12.0\Microsoft.Build.Framework.dll]. (TaskId:16)

          C:\...\v12.0\Microsoft.Build.dll (TaskId:16)
            Project file item includes which caused reference "C:\...\v12.0\Microsoft.Build.dll". (TaskId:16)
              Microsoft.Build, Version=12.0.0.0, ... (TaskId:16)

          C:\...\v12.0\Microsoft.Build.Engine.dll (TaskId:16)
            Project file item includes which caused reference "C:\...\v12.0\Microsoft.Build.Engine.dll". (TaskId:16)
              Microsoft.Build, Version=12.0.0.0, ... (TaskId:16)

C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1697,5): warning MSB3277: 
Found conflicts between different versions of the same dependent assembly that could not be resolved.  
These reference conflicts are listed in the build log when log verbosity is set to detailed. 
[C:\Users\Ilya.Kozhevnikov\Dropbox\BuildTree\BuildTree\BuildTree.csproj]

10
আমি লগ ফাইলটিতে সেই আদেশটি পাইপ করে শেষ করেছি, যাতে আমি এটি আরও সহজ করে দেখতে পারি:msbuild "Foo.sln" /t:Rebuild /v:d > build.log
CrazyPyro

2
শ্রেষ্ঠ উপায় হলো এই টার্মিনালে পেতে stackoverflow.com/a/22702405/268066
CrazyPyro

@ ক্রাজিপাইরো এমসবিল্ডের একটি "বিল্ট ইন" পাইপ রয়েছে/l:FileLogger,Microsoft.Build.Engine;logfile=build.log
লগারের

3
"বিল্ড লগ" কোথায় অবস্থিত? আমি এটি কীভাবে খুঁজে পাব?
বন্দী

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

39

আমি প্রদর্শিত দুটি বার্তাগুলির মধ্যে একটি তুলনা করে কেবল রুবেনের উত্তরকে সমর্থন করতে পারি:

এখানে চিত্র বর্ণনা লিখুন

এবং বার্তা:

সি: \ প্রোগ্রাম ফাইলগুলি (x86) \ এমএসবিল্ড \ 12.0 \ বিন \ মাইক্রোসফট.কমন.কর্নিয় ভার্সন.টারাজেটস (1697,5): সতর্কতা এমএসবি 3277: একই নির্ভরশীল অ্যাসেমব্লির বিভিন্ন সংস্করণের মধ্যে বিরোধ খুঁজে পেয়েছে যা সমাধান করা যায় নি। এই রেফারেন্স দ্বন্দ্বগুলি বিল্ড লগে তালিকাভুক্ত করা হয় যখন লগ ভার্বোসিটি বিস্তারিতভাবে সেট করা থাকে ।

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

সি: \ প্রোগ্রাম ফাইল (x86) \ এমএসবিল্ড \ 12.0 \ বিন \ মাইক্রোসফট.কমন.কর্নিয়ার ভার্সন.টারাজেটস (1697,5): সতর্কতা এমএসবি 3245: এই রেফারেন্সটি সমাধান করতে পারেনি। "সিস্টেম.ওয়েব.রাজার, সংস্করণ = 3.0.0.0, সংস্কৃতি = নিরপেক্ষ, পাবলিক্যকিটোকেন = 31 বিএফ 3856 এডি 364e35, প্রসেসরআরকিটেকচার = এমএসআইএল" সমাবেশটি সনাক্ত করতে পারেনি। ডিস্কে অ্যাসেম্বলি উপস্থিত রয়েছে কি না তা পরীক্ষা করে দেখুন। যদি এই কোডটি আপনার কোডের দ্বারা প্রয়োজনীয় হয় তবে আপনি সংকলনের ত্রুটি পেতে পারেন get

ফলস্বরূপ, আপনাকে যা করতে হবে তা হ'ল হয়:

  1. ম্যানুয়ালি অ্যাসেমব্লিতে একটি রেফারেন্স যুক্ত করুন (এটি ডিস্কে সনাক্ত করুন, সম্ভবত জিএসি করুন এবং এটি "সরাসরি" রেফারেন্স হিসাবে যুক্ত করুন), বা
  2. এটি ডাউনলোড করতে নিউগেট প্যাকেজটি (গ্যালারিতে প্রকাশিত হলে) ব্যবহার করুন এবং এর মধ্যে থাকা অ্যাসেমব্লিকে উল্লেখ করুন।

NuGet গ্যালারি আরো এখানে । এএসপি.নেট ভিউগুলি পূর্বনির্মাণ সম্পর্কে আরও এখানে


ভিএস 2017-এ, যখন আমি "এমএসবিল্ড প্রজেক্ট বিল্ড আউটপুট ভার্বোসিটি" (লগ ফাইল নয়) বিশদতে (ডায়াগনস্টিক নয়) সেট করেছিলাম তখন আমার আউটপুট উইন্ডোতে "সমাবেশটি সনাক্ত করতে পারছি না" ত্রুটি পেয়েছি।
ALEXintlsos

@ আলেএক্সিন্টলসোস: দৃশ্যত এই কার্যকারিতা বদলেছে; তবুও আপনি যেখানেই ত্রুটি পেয়েছেন - এটি থেকে মুক্তি পাওয়ার জন্য নির্দেশ অনুসরণ করুন।
আলেকজান্ডার ক্রিস্টভ

22

ভিজ্যুয়াল স্টুডিওতে বিল্ড ভার্বোসিটি পরিবর্তন করা সঠিক দিক নির্দেশ করতে সহায়তা করবে। ভিএস-এ ভার্বোসিটি পরিবর্তন করতে নীচের পদক্ষেপগুলি অনুসরণ করুন

  1. ভিএস-এ সরঞ্জাম-> বিকল্প মেনুতে যান
  2. প্রকল্প এবং সমাধানগুলি খুলুন -> বিল্ড এবং রান করুন
  3. এমএসবিল্ড প্রকল্পের বিল্ড আউটপুট ভার্বোসিটির মান পরিবর্তন করুন। থেকে এক চয়ন করুন Quiet, Minimal, Normal, DetailedএবংDiagnostic

বিল্ড লগে পরিবর্তনগুলি দেখতে ভিএস- এ আউটপুট উইন্ডো ( Ctrl+ Alt+ O) দেখুন।


16

এবং তারপরে আমি কীভাবে সতর্কতাটি সরিয়ে দেব?

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


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

22
চেক করার সহজ উপায়: সমাধানটিতে ডান ক্লিক করুন -> Manage NuGet packages for solution-> Consolidateএকই প্যাকেজের বিভিন্ন সংস্করণ ইনস্টল করা আছে কিনা তা আপনি দেখতে পারেন
এলশেভ

16

@Elhev- এর একটি মন্তব্যের পুনরাবৃত্তি সমাধানের উপর রাইট ক্লিক করুন -> সমাধানের জন্য নিউগেট প্যাকেজগুলি পরিচালনা করুন -> একীকরণের অধীনে আপনি দেখতে পারবেন একই প্যাকেজের বিভিন্ন সংস্করণ ইনস্টল করা আছে কিনা। প্যাকেজগুলি আপডেট করুন। সংঘাতের ত্রুটি সমাধান করা হয়েছে।


1
এটি আমার পক্ষে সমাধান হয়নি। আমাকে নিউটনসফট.জেএসএন আনইনস্টল করতে হয়েছিল এবং নিউগেটের মাধ্যমে পুনরায় ইনস্টল করতে হয়েছিল। অন্যান্য প্যাকেজগুলির উপর আপডেট হওয়া নির্ভরতা।
গার গডফ্রে

ডিএসএল-এর অনুপস্থিত রেফারেন্সগুলি স্বয়ংক্রিয়ভাবে যুক্ত করে রেশিপারের মতো সরঞ্জামগুলি ব্যবহার করার সময় আমার সাথেও এটি ঘটেছিল। "সর্বদা নুগেট ব্যবহার করে যুক্ত করুন" এখানে একটি ভাল পরামর্শ হতে পারে।
শাশ্বত রুঙ্গা

এটি আমার পক্ষে কাজ করে না কারণ কোনও প্যাকেজ আনইনস্টল করার জন্য এটি এমন একটি বিল্ডের চেষ্টা করে যা ঘটতে পারে না কারণ প্যাকেজগুলির বিরোধ রয়েছে। সুতরাং আমি প্যাকেজটি পুনরায় ইনস্টল করতেও অক্ষম :(
নিকর্নোটো

8

আমি ভিজুয়াল স্টুডিও 2017 ব্যবহার করছি এবং আমি যখন কিছু নিউগেট প্যাকেজ আপডেট করেছি তখন এর মুখোমুখি হয়েছি। আমার জন্য যা কাজ করেছিল তা হ'ল আমার web.configফাইলটি খোলার এবং <runtime><assemblyBinding>নোডটি খুঁজে পাওয়া এবং এটি মুছতে। web.configপ্রকল্পটি সংরক্ষণ এবং পুনর্নির্মাণ করুন।

Error Listজানালার দিকে তাকাও । বাঁধাই কোন্দল সম্পর্কে এক দীর্ঘ দীর্ঘ সতর্কতার মতো দেখতে দেখতে পাবেন। এটিতে ডাবল ক্লিক করুন এবং এটি স্বয়ংক্রিয়ভাবে <runtime><assemblyBinding>সঠিক ম্যাপিংগুলি সহ ব্লকটি পুনরায় তৈরি করবে ।



3

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


3

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


2

আপনি যদি প্যাকেজগুলিতে কোনও পরিবর্তন করেন - স্লানটি আবার খুলুন। এটি আমার পক্ষে কাজ করেছিল!


1

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

আপনি "রেফারেন্স" এর জন্য আপনার প্রকল্পের ফাইলটি অনুসন্ধান করতে পারেন এবং দ্বন্দ্বগুলি সরাতে পারেন। যদি সেগুলি সিস্টেমে অন্তর্ভুক্ত থাকে তবে এগুলি থেকে মুক্তি দিন এবং বিল্ডটি কাজ করা উচিত should এটি এই সমস্যার সমস্ত ক্ষেত্রে উত্তর নাও দিতে পারে - আমি নিশ্চিত করছি যে আপনি জানেন যে আমার জন্য কী কাজ করেছে :)

আমি যে মন্তব্য করেছি তার উদাহরণ:

<!-- <Reference Include="System.Runtime, Version=2.6.9.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> -->
  <!-- <HintPath>$(SolutionDir)packages\Microsoft.Bcl.1.1.9\lib\net40\System.Runtime.dll</HintPath> -->
  <!-- <Private>True</Private> -->
<!-- </Reference> -->


1

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

তাই আমি আসলে আমার নিউটনসফট ইনস্টলটি ডাউনগ্রেড করেছিলাম এবং সতর্কতাটি চলে গেল (VS 2017):

সমাধান এক্সপ্লোরারটিতে রেফারেন্সগুলিতে ডান ক্লিক করুন এবং নিউগেট প্যাকেজগুলি পরিচালনা করুন নির্বাচন করুন ... "ইনস্টল করা" ট্যাবটির নীচে নিউটনসফট (বা আপনার বিরোধ যা কিছু হোক) সন্ধান করুন ডানদিকে "সংস্করণ" এর পাশে একটি ড্রপডাউন প্রদর্শিত হবে যা আপনি পুরানোতে পরিবর্তন করতে পারবেন সংস্করণ। এই ড্রপডাউনটি ডাউনগ্রেডে ব্যবহৃত হতে পারে তা আমার কাছে স্পষ্ট ছিল না।


1

সমস্যাটি খুঁজে পেতে সহায়তা করার জন্য আপনি পুরো ডায়াগনস্টিক ভার্বোসিটি দিয়ে ডটনেট সিএলআই চালাতে পারেন।

dotnet run --verbosity diagnostic >> full_build.log

বিল্ডটি সম্পূর্ণ হয়ে গেলে আপনি ত্রুটির জন্য লগ ফাইল (ফুল_বিল্ড.লগ) মাধ্যমে অনুসন্ধান করতে পারেন। উদাহরণস্বরূপ "একটি দ্বন্দ্ব" সন্ধান করা আপনাকে সমস্যার সাথে ডেকে আনা উচিত।


0

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


0

আমি এমএসবিল্ড ভার্বোসটিটি ডায়াগনস্টিক-তে পরিবর্তন করেছিলাম তবে উপরের উত্তর অনুসারে সমস্যাটি এতটা কোথায় ছিল তা আমি খুঁজে পাইনি অ্যাপকনফাইজে আমার এই কোডটি ছিল:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="XbimXplorer.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>

সুতরাং আমি সবে প্রথম সিস্টেম, সংস্করণটি 4.0.0.0 থেকে 12.0.0.0 এ পরিবর্তন করেছি এবং আমার প্রকল্পটি কাজ করেছে।


0

অন্যান্য উত্তর অনুসারে, আউটপুট লগিং স্তরটি বিশদে সুনির্দিষ্ট করে সেট করুন এবং সেখানে বিরোধের জন্য অনুসন্ধান করুন, এটি আপনাকে কোথায় দেখতে হবে তা বলবে।

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


0

নুগেট থেকে স্থানীয়ভাবে রেফারেন্স করা ডেলসগুলিতে একটি প্যাকেজ স্যুইচ করার পরে আমি কেবল এই সমস্যার মধ্যে পড়েছিলাম। সমস্যাটি ছিল পুরানো রানটাইম বাঁধাইয়ের জিনিস app.config


0

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


0

ভিএস 2017, এমভিসি প্রকল্প

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


-2

চালান Update-Packageপ্যাকেজ ম্যানেজার কনসোলের মাধ্যমে কমান্ড

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

অফিসিয়াল ডক্স সম্পর্কে আরও তথ্য https://docs.microsoft.com/en-us/nuget/consume-packages/reinstalling- এবং-updating- packages


14
আপনি যদি সর্বশেষতম প্যাকেজগুলি না চান যা প্রায়শই উত্পাদন কোডের ক্ষেত্রে হয় তবে এই পরামর্শটি আপনার দিনটিকে নষ্ট করতে পারে।
টনি ও'গান

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

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

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

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