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


320

আমি বর্তমানে একটি। নেট অ্যাপ্লিকেশন বিকাশ করছি, যা ২০ টি প্রকল্প নিয়ে গঠিত। এই প্রকল্পগুলির মধ্যে কয়েকটি .NET 3.5 ব্যবহার করে সংকলিত হয়েছে, কিছু অন্য এখনও। নেট 2.0 প্রকল্প (এখনও পর্যন্ত কোনও সমস্যা নেই)।

সমস্যাটি হ'ল আমি যদি কোনও বাহ্যিক উপাদান অন্তর্ভুক্ত করি তবে আমি সর্বদা নিম্নলিখিত সতর্কতা পাই:

"Found conflicts between different versions of the same dependent assembly".

এই সতর্কতার অর্থ হ'ল কী এবং সম্ভবত এই সতর্কতাটি বাদ দেওয়ার কোনও সম্ভাবনা রয়েছে (উত্স-কোড ফাইলগুলিতে #pragma অক্ষম ব্যবহারের মতো)?


উত্তর:


410

এই সতর্কতার অর্থ হ'ল দুটি প্রকল্প একই সমাবেশ (যেমন System.Windows.Forms) উল্লেখ করে তবে দুটি প্রকল্পের জন্য বিভিন্ন সংস্করণ প্রয়োজন versions আপনার স্বল্প কিছু সু্যোগ আছে:

  1. একই সংস্করণগুলি ব্যবহার করতে সমস্ত প্রকল্পগুলি পুনরায় কম্পাইল করুন (উদাহরণস্বরূপ .Net 3.5 এ সরান)। এটি পছন্দসই বিকল্প কারণ সমস্ত কোড তারা নির্ভরশীলতার সংস্করণগুলির সাথে চলছে যা তারা সংকলন করেছিল।

  2. একটি বাঁধাই পুনঃনির্দেশ যোগ করুন । এটি সতর্কতা দমন করবে। যাইহোক, আপনার। নেট 2.0 প্রকল্পগুলি (রানটাইম সময়ে) নির্ভর সংস্থাগুলির নেট নেট 3.5 সংস্করণে আবদ্ধ থাকবে System.Windows.Forms। আপনি ভিজুয়াল স্টুডিওতে ত্রুটির উপর ডাবল ক্লিক করে দ্রুত একটি বাঁধার পুনর্নির্দেশটি যুক্ত করতে পারেন।

  3. ব্যবহার CopyLocal=true। আমি নিশ্চিত নই যে এটি সতর্কতা দমন করবে কিনা। এটির উপরের বিকল্প 2 এর মতোই এর অর্থ হ'ল সমস্ত প্রকল্পগুলি সিস্টেম. উইন্ডোস.ফোর্মে। নেট 3.5 সংস্করণ ব্যবহার করবে।

আপত্তিজনক রেফারেন্স (গুলি) সনাক্ত করার কয়েকটি উপায় এখানে রয়েছে:

  • আপনি https://gist.github.com/1553265 তে পাওয়া একটি মতো ইউটিলিটি ব্যবহার করতে পারেন
  • আর একটি সহজ পদ্ধতি হ'ল বিল্ড আউটপুট ভার্বোসিটি সেট করুন (সরঞ্জাম, বিকল্পগুলি, প্রকল্পগুলি এবং সমাধানগুলি, বিল্ড এবং রান করুন, এমএস বিল্ড প্রকল্প বিল্ড আউটপুট ভার্বোসিটি, বিশদ) এবং বিল্ডিংয়ের পরে, সতর্কতার জন্য আউটপুট উইন্ডোটি অনুসন্ধান করুন এবং তার উপরে লেখাটি দেখুন । ( এই উত্তরের মন্তব্যে যারা পরামর্শ দিয়েছেন পলওয়ের কাছে হাট টিপ )

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

222
"আপত্তিজনক রেফারেন্স (গুলি)" কী তা সন্ধান করার সহজ উপায় হ'ল বিল্ড আউটপুট ভার্বোসিটি (সরঞ্জাম, বিকল্প, প্রকল্প এবং সমাধান, বিল্ড অ্যান্ড রান, এমএস বিল্ড প্রকল্প বিল্ড আউটপুট ভার্বোসিটি, বিশদ) সেট করা এবং বিল্ডিংয়ের পরে আউটপুট উইন্ডোটি অনুসন্ধান করুন সতর্কতা জন্য। এর ঠিক উপরে লেখাটি দেখুন।
পাওলোয়া

7
ডাবল ক্লিক সতর্কতা (পদক্ষেপ 2) দ্বারা পুনঃনির্দেশকে আবদ্ধ করা আমার সতর্কতাটি সরিয়ে দেবে না। আমি দেখতে পাচ্ছি যে অ্যাসেম্বলিটির সাথে অ্যাপকনফিগ যুক্ত হয়েছে তাতে সন্দেহ হয় কারণ এটি, তবে সতর্কতাটি পরিষ্কার / পুনর্নির্মাণের পরেও রয়েছে। এছাড়াও তৃতীয় ধাপ 3 চেষ্টা করে দেখুন, কোনও ভাগ্য নেই। কোন ধারনা?
এঙ্গুলারসেন

9
যদি তারা আপনার নিজস্ব প্রকল্পের রেফারেন্স না হয়? উদাহরণস্বরূপ, আমি একটি প্রকল্প উল্লেখ করেছি, যার নিউটনসফট.জেসনের উপর নির্ভরতা রয়েছে, সংস্করণ = 6.০.০.০, এবং আমি অন্য একটি প্রকল্পের রেফারেন্স করেছি, যার নিউটনসফট.জসনের উপর নির্ভরতা রয়েছে, সংস্করণ = .0.৪.০.০
এডওয়ার্ড নেড হার্ভে

3
@ ব্রায়ান-লো, আমি কি লিঙ্কযুক্ত ইউটিলিটির পাশাপাশি আপনার উত্তরের একটি বিকল্প হিসাবে বিল্ড আউটপুট ভার্বোসিটি সেটিং (@ প্যাওলোয়ার মন্তব্যে প্রস্তাবিত) যুক্ত করার পরামর্শ দিতে পারি? (দাবি অস্বীকার, আমি আসলে উত্তরটি সম্পাদন করার চেষ্টা করেছি তবে তা পর্যালোচনা করার পরে প্রত্যাখ্যান করা হয়েছিল :))
রিক রিয়েনশে

44

মূলত এটি তখন ঘটে যখন আপনি যে সম্মেলনগুলি উল্লেখ করছেন সেগুলিকে "কপিরাইট লোকাল" "সত্য" হিসাবে সেট করা হয়, যার অর্থ ডিএলএল-এর একটি অনুলিপি আপনার ফর্সের সাথে বিন ফোল্ডারে স্থাপন করা হয়।

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

আমি যেভাবে এটি চারপাশে পৌঁছেছি তা হ'ল সমাবেশ প্রকল্পের উল্লেখগুলির জন্য স্থানীয় অনুলিপিগুলিকে অনুলিপি সেট করা। কেবল এক্সিকিউটেবল / ওয়েব অ্যাপ্লিকেশনগুলির জন্য এটি করুন যেখানে আপনার প্রস্তুত পণ্যটি চালনার জন্য সমাবেশ প্রয়োজন।

আশা করি তা উপলব্ধি!


31

আমি উপরের মন্তব্যে তারা প্রদত্ত পাওলোয়ার সমাধান পোস্ট করতে চেয়েছিলাম। আমি বিশ্বাস করি এটি আপত্তিজনক উল্লেখগুলি সন্ধানের জন্য সেরা সমাধান।

"আপত্তিজনক রেফারেন্স (গুলি)" কী তা সন্ধান করার সহজ উপায় হ'ল বিল্ড আউটপুট ভার্বোসিটি (সরঞ্জাম, বিকল্প, প্রকল্প এবং সমাধান, বিল্ড অ্যান্ড রান, এমএস বিল্ড প্রকল্প বিল্ড আউটপুট ভার্বোসিটি, বিশদ) সেট করা এবং বিল্ডিংয়ের পরে আউটপুট উইন্ডোটি অনুসন্ধান করুন সতর্কতা জন্য। এর ঠিক উপরে লেখাটি দেখুন।

উদাহরণস্বরূপ, আপনি যখন "দ্বন্দ্ব" এর জন্য আউটপুট প্যানেলটি সন্ধান করেন আপনি এ জাতীয় কিছু পেতে পারেন:

3>  There was a conflict between "EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" and "EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
3>      "EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" was chosen because it was primary and "EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" was not.

আপনি দেখতে পাচ্ছেন, EF সংস্করণ 5 এবং 6 এর মধ্যে একটি বিরোধ রয়েছে।


3
তবে এখন আমার কাছে এই তথ্য আছে, আমি কীভাবে ত্রুটিটি সরিয়ে দেব? দ্বন্দ্বটি কী তা আমি দেখতে পাচ্ছি, তবে প্রকল্পটি কোথা থেকে বিতর্কিত সংস্করণটি উল্লেখ করছে তা আমি খুঁজে পাই না
বাসি

হাই @ বাসি, প্রথম কাজটি হ'ল আপনার নুগেট প্যাকেজ ফাইলটি পরীক্ষা করা এবং আপনাকে প্যাকেজের একই সংস্করণে সমস্ত ফাইল আপডেট করার দরকার আছে কিনা তা নির্ধারণ করুন। তোমার কমান্ড অনুরূপ চলমান এটা করতে পারেন update-package [your package name] -version 6.0.0 -reinstallআমার উত্তর প্রতি এখানে stackoverflow.com/questions/22685530/...
user1477388

@ বাসি, আপনি সতর্কতার পরামর্শ অনুসারে যা করতে পারেন তা করতে পারেন, এবং অ্যাপ্লিকেশন কনফিগ ফাইলে বাঁধাই পুনঃনির্দেশ যোগ করুন! (আপডেট করা যদি কোনও বিকল্প না হয়, তবে তা))
BrainSlugs83

@ বাসি আমার উত্তরটি দেখুন, যেখানে আমি আপনাকে দেখিয়েছি যে কীভাবে বিবিধ সমস্যার সৃষ্টি করছে এমন বিভিন্ন সমাবেশ / .dll পেতে হয়।
নিউপ্রিন্ট

22

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

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

Solution A
+--Project A
   +--Reference A (version 1.1.0.0)
   +--Reference B
+--Project B
   +--Reference A (version 1.1.0.0)
   +--Reference B
   +--Reference C
+--Project C
   +--Reference X (this indirectly references Reference A, but with e.g. version 1.1.1.0)

Solution B
+--Project A
   +--Reference A (version 1.1.1.0)

আমি আশা করি উপরেরটি আমার অর্থটি কী তা বোঝায়, এটি জানতে আমার কয়েক ঘন্টা সময় নিয়েছে, তাই আশা করি অন্য কেউও উপকৃত হবেন।


1
এখানেও একই সমস্যা। তবে নতুন সংস্করণে রেফারেন্স আপডেট করার আমার কোনও সুযোগ নেই। আমি একটি App.config ব্যবহার করার চেষ্টা করেছি: এটি অ্যাপ্লিকেশনটির জন্য কাজ করার সময়, ভিজ্যুয়াল স্টুডিও 2010 এটি নির্মাণের সময় এড়ানো হবে বলে মনে হচ্ছে।
টমাস ওয়েলার

1
বাহ, আমি দুই মাস ধরে এই সমস্যাগুলি পেয়েছি এবং এটি সমাধান এবং সমাধান করতে পারিনি। কোনও কারণে এটি কেবল ডিবাগিংয়ের সময় ক্রাশ হবে এবং কিছু ক্ষেত্রে এটি বিরক্তিকর .dllটিকে ম্যানুয়ালিটি বিন ফোল্ডারে আসলটির সাথে প্রতিস্থাপন করবে যখন এটি হবে। ডিবাগিং ছিল আসল ব্যথা। আমি যখন আপনার উত্তরটি পড়েছি তখন বুঝতে পারি এটি হ'ল আমার সাথে ঠিক কী ঘটছে এবং আমি এটি 5 মিনিটের মতো ঠিক করেছি :)
ডেনিস পুজাক

19

ভিজুয়াল স্টুডিওতে যদি আপনি সমাধানটিতে ডান ক্লিক করেন এবং নুগেট প্যাকেজগুলি পরিচালনা করে সেখানে একটি "একীকরণ" ট্যাব রয়েছে যা সমস্ত প্যাকেজগুলিকে একই সংস্করণে সেট করে।


ভকভগক. এটি এই বার আমাকে সাহায্য করেনি, তবে সেখানে তা জানা ভাল।
BrainSlugs83

8

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


9
কেবলমাত্র আপনি সমাধানটি পুনর্নির্মাণ না করা পর্যন্ত
লুক

এই আমাকে বাঁচায়! গতকাল থেকেই আমি অন্য সমাধানের চেষ্টা করছি তবে এটি আমার সমস্যার সমাধান করেছে। এই উপরে মন্তব্য সহ ^। ধন্যবাদ!
vnpnlz

6

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

এটি আমার জন্য হয়েছিল কারণ আমি নিউটনসফট.জসন ৪.০ ব্যবহার করে অ্যাপ্লিকেশনটি চালাচ্ছি

থেকে:

<dependentAssembly>
  <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>

প্রতি:

<dependentAssembly>
  <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="4.5.0.0" />
</dependentAssembly>

এটি আমার জন্য সমাধান ছিল। উচ্চতর সংস্করণে আমার কাছে একটি বাধ্যতামূলক পুনর্নির্দেশ ছিল এবং আমি নিম্ন সংস্করণে স্থানান্তরিত হলে এটি কেবল তখনই কাজ করবে।
mrwaim

1
কেন? আমার জন্য খুব অদ্ভুত। আমি ইএফ ব্যবহার করি না, তবে আমি ভেবেছিলাম আমরা সর্বদা সর্বশেষ সংস্করণে যেতে চাই?
হোং লং

1
@ হোওংলং কারণ আপনি যে সংস্করণটি উল্লেখ করছেন সেটি হ'ল পুরানো সংস্করণ, তবে আপনি যে সংস্করণটি অন্তর্ভুক্ত করছেন এটি নতুন is
BrainSlugs83

3

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

আপনি যদি আপনার নির্ভরতা আপডেট করতে ইচ্ছুক হন তবে নিম্নলিখিতগুলি করুন:

  1. সমাধান এক্সপ্লোরার থেকে, প্রকল্পটিতে ডান ক্লিক করুন এবং 'নিউজ প্যাকেজগুলি পরিচালনা করুন' এ ক্লিক করুন

  2. বাম ফলকে 'ইনস্টল হওয়া প্যাকেজগুলি' ট্যাবটি নির্বাচন করুন আপনার ইনস্টল করা প্যাকেজগুলি রেকর্ড করুন আপনার প্যাকেজগুলি প্রথমে আপনার ডেস্কটপে অনুলিপি করতে পারেন যদি আপনার কাছে খুব বেশি থাকে তবে নুগেট পিকিংগুলি কি ইনস্টল করা হয়েছে তা দেখতে আপনি Google এর সাথে এটি পরীক্ষা করে দেখতে পারেন can

  3. আপনার প্যাকেজ আনইনস্টল করুন। ঠিক আছে, আমরা তাদের ঠিক আবার যুক্ত করব।

  4. আপনার প্রয়োজনীয় প্যাকেজগুলি তাত্ক্ষণিকভাবে ইনস্টল করুন। নুগেট যা করবে তা কেবল আপনাকে সর্বশেষতম সংস্করণই পাবে না, তবে তা আপনার রেফারেন্সগুলিকে বদলে দেবে, এবং আপনার জন্য বাইন্ডিং পুনঃনির্দেশকে যুক্ত করবে।

  5. আপনার সমস্ত প্রকল্পের জন্য এটি করুন।

  6. সমাধান স্তরে, একটি পরিষ্কার এবং পুনর্নির্মাণ করুন।

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

আপনি যদি নিজের নির্ভরতাগুলি আপডেট করতে না চান, তবে আপনি প্যাকেজ ম্যানেজার কনসোলটি ব্যবহার করতে পারেন, এবং সিনট্যাক্স আপডেট-প্যাকেজ -প্রজেক্টনাম [আপনারপ্রজেক্টনাম] [প্যাকেজনাম]-সংস্করণ [সংস্করণ নম্বর]


2

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

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

কোন প্রকল্পগুলিতে এই দ্বন্দ্ব রয়েছে তা অনুসন্ধান করার চেষ্টা করুন, রেফারেন্স তালিকা থেকে উপাদানগুলি সরিয়ে ফেলুন, তারপরে এগুলি আবার যুক্ত করুন যাতে আপনি একই ফাইলটিতে ইঙ্গিত করছেন তা নিশ্চিত করে।


2

=> চেক করুন আংশিকভাবে প্রয়োগের কিছু উদাহরণ থাকবে instance

=> প্রথমে আনইনস্টল অ্যাপ্লিকেশন থেকে এই ইনস্টলটি আনইনস্টল করুন।

=> তারপরে, পরিষ্কার করুন, পুনর্নির্মাণ করুন এবং মোতায়েনের চেষ্টা করুন।

এটি আমার ইস্যুটি সমাধান করেছে opeএটি আপনাকেও সহায়তা করে। শুভেচ্ছান্তে.


1

এছাড়াও এই সমস্যাটি ছিল - আমার ক্ষেত্রে এটি বেশ কয়েকটি উল্লেখকে "নির্দিষ্ট সংস্করণ" সম্পত্তি রাখার কারণে ঘটেছিল was এই উল্লেখগুলিতে এটি মিথ্যাতে পরিবর্তন করা সমস্যার সমাধান করেছে।


1

নিউগেট ব্যবহার করা হলে আমাকে যা করতে হয়েছিল তা হ'ল:

  1. প্রকল্পটিতে ডান ক্লিক করুন এবং নিউগেট প্যাকেজগুলি পরিচালনা করুন ক্লিক করুন ..

  2. উপরের ডানদিকে কোগ ক্লিক করুন

  3. প্যাকেজ উত্সের উপরে নিউগেট প্যাকেজ ম্যানেজারের সাধারণ ট্যাবে ক্লিক করুন

  4. বাইন্ডিং পুনঃনির্দেশগুলিতে "বাইন্ডিং পুনর্নির্দেশগুলি প্রয়োগ করুন" এ চেক করুন

  5. পরিষ্কার এবং পুনর্নির্মাণ এবং সতর্কতা চলে গেছে

সহজ কিছু


1

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

ভিজ্যুয়াল স্টুডিওতে উইন্ডোতে Tools > Options > Build and Run > MSBuld Project build output verbosity: (set to) Diagnostics.লাইন (গুলি) There was a conflict betweenসন্ধান করুন Output। আমি যে আউটপুট পেয়েছিলাম তার নীচে নীচে:

1>  There was a conflict between "FastMember, Version=1.5.0.0, Culture=neutral, PublicKeyToken=null" and "FastMember, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null". (TaskId:19)
1>      "FastMember, Version=1.5.0.0, Culture=neutral, PublicKeyToken=null" was chosen because it was primary and "FastMember, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null" was not. (TaskId:19)
1>      References which depend on "FastMember, Version=1.5.0.0, Culture=neutral, PublicKeyToken=null" [C:\Users\ksd3jvp\Source\Temp\AITool\Misra\AMSAITool\packages\FastMember.1.5.0\lib\net461\FastMember.dll]. (TaskId:19)
1>          C:\Users\ksd3jvp\Source\Temp\AITool\Misra\AMSAITool\packages\FastMember.1.5.0\lib\net461\FastMember.dll (TaskId:19)
1>            Project file item includes which caused reference "C:\Users\ksd3jvp\Source\Temp\AITool\Misra\AMSAITool\packages\FastMember.1.5.0\lib\net461\FastMember.dll". (TaskId:19)
1>              FastMember, Version=1.5.0.0, Culture=neutral, processorArchitecture=MSIL (TaskId:19)
1>      References which depend on "FastMember, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null" []. (TaskId:19)
1>          C:\Users\ksd3jvp\Source\Temp\AITool\Misra\AMSAITool\packages\ClosedXML.0.94.2\lib\net46\ClosedXML.dll (TaskId:19)
1>            Project file item includes which caused reference "C:\Users\ksd3jvp\Source\Temp\AITool\Misra\AMSAITool\packages\ClosedXML.0.94.2\lib\net46\ClosedXML.dll". (TaskId:19)
1>              ClosedXML, Version=0.94.2.0, Culture=neutral, processorArchitecture=MSIL (TaskId:19)

লক্ষ্য করুন Project file item includes which caused reference "C:\Users\ksd3jvp\Source\Temp\AITool\Misra\AMSAITool\packages\ClosedXML.0.94.2\lib\net46\ClosedXML.dll"

ClosedXML.dllClosedXMLনিউগেট থেকে আসে এবং এটি নির্ভর করে FastMember.dll 1.3.0.0। এটির শীর্ষে, FastMemberপ্রকল্পে নুগেটও রয়েছে এবং এটি রয়েছে FastMember.dll 1.5.0.0। মিল নেই!

আমি আনইনস্টল ClosedXMLFastMemberনুগেটস রেখেছি, কারণ আমি পুনর্নির্দেশকে বাধ্যতামূলক করেছি ClosedXMLএবং ইস্যুটি ঠিক করে দিয়েছে তার ঠিক সর্বশেষ সংস্করণটি ইনস্টল করেছি !


0

এইটা আমার সাথে ঘটেছে. একটি dll দুইবার রেফারেন্স করা হয়েছিল: একবার সরাসরি (রেফারেন্সে) এবং একবার অপ্রত্যক্ষভাবে (অন্য রেফারেন্সড প্রকল্প দ্বারা রেফারেন্স)। আমি প্রত্যক্ষ রেফারেন্স, পরিষ্কার এবং পুনর্নির্মাণ সমাধান সরিয়েছি। সমস্যা স্থির।


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

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


0

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


0

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


0

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


0

সমাধানটি এখানে, নেট কোর 3.0 স্টাইল: https://github.com/HTD/ref-check

আপনি যখন কোন দ্বন্দ্ব খুঁজে পাবেন, তখন আপনি দ্বন্দ্বগুলি সমাধান করতে সক্ষম হবেন। যদি বিরোধী উল্লেখগুলি অন্য প্যাকেজগুলির থেকে হয় তবে আপনার ভাগ্যের বাইরে of অথবা পরিবর্তে আপনার উত্সগুলি ব্যবহার করা দরকার।

আমার ক্ষেত্রে, প্যাকেজগুলির মধ্যে দ্বন্দ্বপূর্ণ প্রায়শই আমার নিজস্ব থাকে, তাই আমি নির্ভরতার সমস্যাগুলি সমাধান করতে এবং সেগুলি পুনরায় প্রকাশ করতে পারি।

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