পূর্বশর্ত হিসাবে চিহ্নিত করার জন্য কেন আমি 'এসেম্বলি' * .dll 'জোর স্বাক্ষরিত হওয়া উচিত?'


266

আমি সি # 4.0 ব্যবহার করে আমার এক্সেল অ্যাডিন সংকলন করার চেষ্টা করছি এবং ভিজুয়াল স্টুডিওতে আমার প্রকল্পটি তৈরি করার সময় এই সমস্যাটি পেতে শুরু করেছি। আপনাকে বলা গুরুত্বপূর্ণ যে আমার আগে এই সমস্যাটি ছিল না। কি ঘটতে পারে?


72
দ্রুত চেষ্টা হিসাবে , আপনার প্রকল্পের binএবং objফোল্ডার উভয়ই সরিয়ে ফেলুন এবং আবার প্রকল্পটি তৈরি করুন। কখনও কখনও এটি কাজ করে।
জেসন ইভান্স

আপনি সমাবেশে স্বাক্ষর করছেন?
ফেলিস পোলানো ২

3
@ জেসন, প্রকল্পটি পরিষ্কার করা এবং পুনর্নির্মাণ আমার পক্ষে কাজ করেছে। আমি সবেমাত্র অ্যাসেমব্লিতে স্বাক্ষর করেছি এবং প্রকল্পটি তৈরি করবে, তবে প্রকাশ করব না।
Kratz

1
@ ক্র্যাটজ - খুশি এই টিপটি আপনার জন্য কাজ করেছে :) এটি আপনার কম্পিউটারটি পুনরায় চালু করে ঠিক করার মতো!
জেসন ইভান্স

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

উত্তর:


239

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

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

NuGet

নিউগেটের সাহায্যে এই পরিস্থিতিতে পড়া সহজ হয় যদি:

  1. আপনি আপনার সমাধানে একটি প্রকল্পে একটি প্যাকেজ ইনস্টল করেন।
  2. এই প্যাকেজটির একটি নতুন সংস্করণ প্যাকেজ উত্সে স্থাপন করা হয়েছে।
  3. আপনি একই সমাধানে এটি অন্য প্রকল্পে ইনস্টল করুন।

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

এটির সমাধানের জন্য, update-package [package name]সবকিছুকে স্তরের প্লেয়িং ফিল্ডে আনার জন্য নুগেট প্যাকেজ ম্যানেজার কনসোলে কমান্ডটি জারি করুন , যার পর্যায়ে সমস্যাটি চলে যায়।

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


7
এখানে আরও কিছু তথ্য দেওয়া হয়েছে: social.msdn.microsoft.com/ Forums / en / csharplanguage / thread/… । এছাড়াও, বিন এবং অবজেক্ট ক্লিয়ারিং এবং (যদি আপনার নিয়ন্ত্রণে থাকে) অ্যাসেম্বলি সংস্করণটিকে একই মান হিসাবে সেট করা (যেমন বিল্ড নম্বর শূন্য রেখে) সহায়তা করে।
কিট

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

2
এই ত্রুটিটি আমার জন্য পপিং হয়ে যায় এবং .csproj ফাইল থেকে সমাবেশের নামটি সরিয়ে রাখে, তারপরে পরিষ্কার করার বিষয়টি আমার পক্ষে ধারাবাহিকভাবে স্থির হয়ে গেছে। ধন্যবাদ!
স্কুবাস্টেভ

1
উপরের উত্তরটি যদি কাজ না করে এবং আপনি ইন্টেলিজেন্স / রিসার্পার ব্যবহার করে আপনার কোনও প্রকল্পে নিউগেট রেফারেন্স যুক্ত করেছেন বলে আপনি এই উত্তরটি দেখতে চাইতে পারেন।
ডেভিড মারডোক

সমাধানটিতে 4 টি প্রকল্প রয়েছে। একটি প্রকল্প বি শ্রেণিবদ্ধ গ্রন্থাগার। বি এর dll বাকি তিনটিতে রেফারেন্স করা হয়েছিল। অন্য দুটি প্রকল্পের ( সি এবং ডি ) এক্সিকিউটেবল এ তে উল্লেখ করা হচ্ছে । সুতরাং আমি এ তৈরি করেছি এবং খুব একই সমস্যা পেয়েছি। ফিক্স প্রথম দুই প্রকল্পের বাকি পুনর্নির্মাণের ছিল। এবং তারপরে প্রকল্পটি পুনর্নির্মাণ একটি নির্দিষ্ট সমস্যা।
বিক্রম সিং সায়নী

268

আমার যখন এই সমস্যা হয়েছিল তখন আমি 'সক্ষম ক্লিক ক্লিক সুরক্ষা সেটিংস' বন্ধ করে এটি ঠিক করেছি।

মেনু: প্রকল্প | 'প্রকল্পের নাম' সম্পত্তি ... | সুরক্ষা ট্যাব | 'ক্লিকওন্স সুরক্ষা সেটিংস সক্ষম করুন' চেক বক্স।


2
ভিএস ২০১২-এ আমার পক্ষে কাজ করেনি (চেকবক্সটি প্রকাশের সময় স্বয়ংক্রিয়ভাবে পুনরায় পরীক্ষা করা হয়)। পরিবর্তে আমি এই উত্তরটি ব্যবহার করেছি, কারণ কেবল বিল্ড প্রক্রিয়াটির জন্য ডিএলএল প্রয়োজন ছিল। stackoverflow.com/a/8123074/17713
ম্যাথিয়াস মেড

3
ক্লিকঅনস ব্যবহার করার সময়, এই চেক বাক্সটি প্রকাশিত উইজার্ডের সাথে অ্যাপ্লিকেশন প্রকাশের সময় স্বয়ংক্রিয়ভাবে নির্বাচন করা হয়। আরও তথ্যের জন্য দেখুন msdn.microsoft.com/en-us/library/1sfbfyk0.aspx
ডেভিড মারডোক

8
আমি MSVS 2015 আছে এবং আমি প্রকল্পের বৈশিষ্ট্য অধীনে সিকিউরিটি ট্যাব দেখতে না
জিটা

70

এই উত্তর দেখুন ।

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


2
এক্সেল অ্যাডিন প্রকল্পে অ্যাপ্লিকেশন ফাইলগুলির বোতাম নেই। stackoverflow.com/questions/6378801/...
সের্গেই Kucher

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

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

7
আমার ক্ষেত্রে, এই সমস্যাটি সমাধান করা হয়েছিল প্রকাশের স্থিতি INCLUDE (অটো) থেকে কেবল ইনক্লুডে পরিবর্তন করা। যাইহোক, আপনার উত্তর প্রদর্শিত মানগুলিকে জোড় না করতে সহায়তা করেছিল। অনেক অনেক ধন্যবাদ
জুলিও নোব্রে

22

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


13

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


1
বা কেবল 'ক্লিন সলিউশন'
অবধি 17-10

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

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

6

আপনার একটি কী দিয়ে অ্যাসেম্বলি সাইন করতে হবে। ট্যাব স্বাক্ষরের অধীনে প্রকল্পের বৈশিষ্ট্যগুলিতে যান: এখানে চিত্র বর্ণনা লিখুন


6

এটি যে কারও পক্ষে সহায়তা করতে পারে এই সমস্যাটির জন্য আমার সমাধান যোগ করা।

এই ত্রুটিটি ছুঁড়ে দেওয়ার জন্য আমার কাছে ক্লিকঅনস সমাধান ছিল। অ্যাপ্লিকেশনটি একটি সাধারণ "Libs" ফোল্ডারটিকে রেফারেন্স করেছে এবং এতে একটিতে প্রকল্পের রেফারেন্স রয়েছে Foo.dll। যদিও সমাধানের কোনও প্রকল্পই Foo.dll"Libs" ফোল্ডারের মধ্যে স্ট্যাটিক অনুলিপিটি উল্লেখ করে নি, সেই ফোল্ডারের কিছু রেফারেন্সই করেছিল (যেমন: আমার সমাধানটিতে Libs\Bar.dllরেফারেন্স দেওয়া হয়েছে যার সাথে রেফারেন্স দেওয়া হয়েছিল Foo.dll।) যেহেতু সিও অ্যাপ্লিকেশনটি সমস্ত নির্ভরতা টেনে নিয়েছে Libsপাশাপাশি তাদের নির্ভরতা, উভয় অনুলিপি প্রকল্পে যাচ্ছিল। এটি উপরের ত্রুটিটি তৈরি করছিল।

আমি আমার Libs\Foo.dllস্থির সংস্করণটি একটি সাবফোল্ডারে স্থানান্তরিত করে সমস্যার সমাধান করেছি Libs\Fix\Foo.dll। এই পরিবর্তনটি ক্লিকঅনস অ্যাপ্লিকেশনটিকে কেবলমাত্র ডিএলএল-এর প্রকল্প সংস্করণ ব্যবহার করে এবং ত্রুটিটি অদৃশ্য হয়ে গেছে।



6

আপনি যদি এই প্রশ্নের অন্যান্য সমস্ত উত্তর চেষ্টা করে থাকেন এবং আপনি:

  • আপনার সমাধানে একাধিক প্রকল্প রয়েছে
  • এমন একটি প্রকল্প আছে (প্রজেক্ট এ) যা অন্য প্রকল্পের (প্রকল্প বি) রেফারেন্স করে, যার প্রকল্পটি একটি নিউগেট প্যাকেজটিকে রেফার করে।
  • প্রকল্প এ-তে, আপনি প্রকল্প বি-তে উল্লিখিত ন্যুগেট প্যাকেজটির রেফারেন্স আনতে Intellisense / ReSharper ব্যবহার করেছেন (প্রজেক্ট B তে কোনও পদ্ধতি যখন নিউগেট প্যাকেজ দ্বারা সরবরাহিত কোনও প্রকার ফেরত দেয় এবং প্রকল্পটি এ-তে ব্যবহৃত হয়)
  • নিউগেট প্যাকেজ ম্যানেজার (বা সি এল এল) এর মাধ্যমে নিউগেট প্যাকেজ আপডেট হয়েছে।

... আপনার প্রকল্পগুলির রেফারেন্সগুলিতে আপনার কাছে নুগেট প্যাকেজ ডিএলএল এর পৃথক সংস্করণ থাকতে পারে, কারণ ইন্টেলিসেন্স / রিসার্পার দ্বারা তৈরি রেফারেন্সটি একটি "সাধারণ" রেফারেন্স হবে, এবং কোনও নিউগেট রেফারেন্স প্রত্যাশার মতো নয়, সুতরাং নুগেট আপডেট প্রক্রিয়াটি জিতেছে ' এটি খুঁজে বা আপডেট!

এটি ঠিক করার জন্য, প্রকল্প এ-তে রেফারেন্সটি সরান, তারপরে এটি ইনস্টল করতে নিউগেট ব্যবহার করুন এবং নিশ্চিত করুন যে সমস্ত প্রকল্পের নুগেট প্যাকেজগুলি একই সংস্করণ। ( এই উত্তরে ব্যাখ্যা হিসাবে )


লাইফ প্রো টিপ:

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


হ্যাঁ, রেফারেন্স যুক্ত করতে পুনরায় ভাগ করা ব্যবহার এড়িয়ে চলুন। পুনঃভাগটি ডিবাগ থেকে রেফারেন্স গ্রহণ করবে (অথবা আপনি যদি রিলিজ মোডে থাকেন তবে) ফোল্ডারটি। বিশেষত বিশাল প্রকল্পগুলিতে এটি প্রচুর সমস্যা সৃষ্টি করবে।
cepriego

5

উইন্ডোজএপিআইকোডপ্যাকটি আপডেট করার পরে যখন আমার সাথে এটি ঘটেছিল তখন আমি কেবল সমাধানটি পুনর্নির্মাণ করি।

বিল্ড -> পুনর্নির্মাণ সমাধান


4

আমার সমাধানে অনেকগুলি প্রকল্পের মধ্য দিয়ে যেতে হয়েছিল এবং স্বতন্ত্রভাবে আপডেট করার জন্য আমি এটি দ্বারা স্থির করেছি:

  • আমার সমাধানটিতে ডান ক্লিক করে এবং 'সমাধানের জন্য নিউগেট প্যাকেজগুলি পরিচালনা করুন ...' নির্বাচন করা হচ্ছে
  • আপডেট ট্যাবে যাচ্ছি
  • ক্ষতিগ্রস্থ প্যাকেজটি সন্ধান করা এবং আপডেট নির্বাচন করা
  • ওকে ক্লিক করা হয়েছে এবং এটি প্যাকেজের সমস্ত ঘটনা আপ টু ডেট এনেছে

4

সমস্যাটি আনলোড এবং পুনরায় লোড করা আমার জন্য এটি সমাধান করে।


4

আমি প্রকাশ করতে , অ্যাপ্লিকেশন ফাইলগুলিতে গিয়েছিলাম , খুঁজে পেয়েছি যে ত্রুটি নিক্ষেপ করছে তা 'অন্তর্ভুক্ত (অটো)' থেকে 'অন্তর্ভুক্ত ' এ পরিবর্তন করেছে to আমি এখন প্রকাশ করতে পারি।


4

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

আপনি যদি ক্লিকঅনস ব্যবহার না করেন তবে নিম্নলিখিতটি একটি অশোধিত কাজ হিসাবে কাজ করে (এটি .manifestফাইল থেকে সমস্ত নির্ভরতার তথ্য বাদ দেবে ):

  1. প্রকল্পটি আনলোড করুন, .csproj সম্পাদনা করুন
  2. বিভাগটি এমন দেখাচ্ছে:

    <!-- Include additional build rules for an Office application add-in. -->
    <Import Project="$(VSToolsPath)\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets" Condition="'$(VSToolsPath)' != ''" />
  3. রেফারেন্সযুক্ত .targetsফাইলটির একটি নতুন নামকৃত অনুলিপি সম্পাদনা করুন (আমার ক্ষেত্রে ফাইলটি সমাধান হয়েছে C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targetsএবং আমি Microsoft.VisualStudio.Tools.Office_FIX.targetsএকই ফোল্ডারে একটি অনুলিপি তৈরি করেছি - এটি অন্য কোনও ফোল্ডার থেকে কাজ করে কিনা তা যাচাই করে নি)।

  4. এই GenerateApplicationManifestউপাদান এবং তার অ্যাট্রিবিউট পরিবর্তন Dependencies="@(DependenciesForGam)"করা Dependencies=""

  5. .targetsপরিবর্তিত আপনার সম্পাদিত ফাইলটি রেফারেন্স করতে 2-এ পাওয়া বিভাগটি পরিবর্তন করুন ।

যখনই .targetsভিএস সহ শিপ করা ফাইলটির সংস্করণ আপডেট করা হবে তখনই এটি পুনরাবৃত্তি করতে হবে (বা আপনি আপডেটগুলি পাবেন না) তবে আমি আশা করছি এটি শীঘ্রই ঠিক হয়ে যাবে ...


2
এটি যুক্ত করার জন্য, সমস্যাটি ঠিক করার কিছুটা হালকা উপায় হ'ল বিন্দু 3 তে অবস্থিত ফাইল থেকে পুরো <টার্গেটের নাম = "ভিজ্যুয়ালস্টুডিওর অ্যাপ্লিকেশনস বিল্ড"> বিভাগটি অনুলিপি করা (যেমন: কেবল ফাইলটি সন্ধান করুন, অনুলিপি করুন এবং নাম পরিবর্তন করবেন না) , আপনার নিজের প্রকল্পের জন্য * ** প্রোজ ফাইল, এবং point পয়েন্টে বর্ণিত একই পরিবর্তন করুন এটি কেবল আপনার প্রকল্পের জন্য আচরণকে ওভাররাইড করবে এবং এর পরে আপনার মেশিনের অন্য কোনও কিছুর উপর প্রভাব ফেলবে না। যদি ভবিষ্যতে ভিএস আপডেটে মূল ফাইলে পরিবর্তন হয় তবে আপনার এখনও প্রক্রিয়াটি পুনরাবৃত্তি করতে হবে।
আদম

3

আপনার সমাবেশটি কি সঠিকভাবে স্বাক্ষরিত?

এটি পরীক্ষা করতে আপনার প্রকল্পে Alt + Enter টিপুন (বা ডান ক্লিক করুন, তারপরে বৈশিষ্ট্যগুলি)। "সাইনিং" এ যান। যাচাই করুন যে চেক বক্স "সমাবেশ সাইন ইন" চেক করা হয় এবং শক্তিশালী নাম কী ফাইল নির্বাচন করা হয় এবং "বিলম্ব চিহ্ন শুধুমাত্র" হয় অবারিত


আমি * .dll স্বাক্ষর করি নি, তবে এর আগে কোনও সমস্যা হয়নি (আমার আগে সংকলন ত্রুটি ছিল না)। ডেলটি প্রকাশিত প্রকল্পের একটি রেফারেন্সযুক্ত প্রকল্পে উল্লেখ করা হয়েছে, আমি সরাসরি প্রকাশিত প্রকল্প থেকে ডেলকে রেফারেন্সের জন্য কুৎসিত সমাধান পেয়েছি, আপনি কি দয়া করে আমাকে বলতে পারেন কেন এটি এখন কাজ করে? বা আমি কীভাবে সমস্যার সমাধান করতে পারলাম? আপনাকে ধন্যবাদ
সের্গে কুচার

1
@ user520535: ভাল, আপনি যদি লাইব্রেরিতে আগে স্বাক্ষর না করেন, আপনার উচিত। এই লাইব্রেরির জন্য স্বাক্ষরিত অ্যাসেমব্লিগুলি দ্বারা ব্যবহৃত হওয়া কেবল একমাত্র উপায় নয় (কোনও স্বাক্ষরিত অ্যাসেমব্লিকে একটি স্বাক্ষরিত নয় বলে ডাকতে পারে) তবে আপনি প্লাগ-ইনগুলি / অ্যাড যুক্ত করার সময় স্বাক্ষরিত অ্যাসেমব্লিগুলির সাথে কাজ করাও খুব জটিল is -ins। এখন, কেন এটি এখন এবং আগে আগে সমস্যার কারণ হতে শুরু করে? আমার কোন ধারণা নেই.
আর্সেনী মরজেনকো

@ ইউজার ৫২০৫৩৫: যদি এটি সহায়তা করে তবে আপনি উত্তরটি গ্রহণ করতে বা আপলোড করতে পারবেন না free
আর্সেনি মরজেনকো

3

এখন সমস্যাটির জন্য আলাদা পদ্ধতি রয়েছে:

  • প্রকল্পে ডান ক্লিক করুন এবং 'আনলোড প্রকল্প' বিকল্পটি নির্বাচন করুন। আপনি প্রকল্পটি অনুপলব্ধ হয়ে উঠবে তা লক্ষ্য করবেন।

  • অনুপলব্ধ প্রকল্পে ডান ক্লিক করুন এবং 'সম্পাদনা' বিকল্পটি নির্বাচন করুন।

  • সমস্ত উত্স ট্যাগ থাকা '<আইটেমগ্রুপ>' ট্যাগে স্ক্রোল করুন।

  • এখন ত্রুটি তালিকায় প্রদর্শিত হয়েছে এমন রেফারেন্সে যান, আপনি এটি লক্ষ্য করবেন যে এটি একটি একক ট্যাগ (যেমন < Reference Include="assemble_name_here, Version=0.0.0.0, Culture=neutral" / >) ব্যবহার করে।

  • নিম্নলিখিত হিসাবে দেখতে এটি পরিবর্তন করুন:

<Reference Include="assemble_name_here, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" >
    < Private > True < / Private >
    < HintPath > path_here\assemble_name_here.dll < / HintPath >
< / Reference >
  • আপনার পরিবর্তনগুলি সংরক্ষণ করুন, অনুপলব্ধ প্রকল্পটিতে আবার ডান ক্লিক করুন এবং 'পুনঃলোড প্রকল্প' বিকল্পে ক্লিক করুন, তারপরে বিল্ড করুন।

3

আপনি संदर्भিত .dll এর সংস্করণ পরিবর্তন করার সময় এটি ঘটে। আপনাকে সমস্ত আইটেম মুছে ফেলতে হবে, বা টার্গেট বিল্ড ফোল্ডারে .dll করতে হবে।


2

আমি অনুরূপ সংকলক ত্রুটি পেয়েছি। আমি একবার dll ফাইলের নির্ভরশীল প্রকল্পটি সমাধানের সাথে যুক্ত করলে, সমস্যার সমাধান হয়ে যায়।


2

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

আপনি অবজেক্ট ব্রাউজার উইন্ডোতে (মেনু দেখুন-> অবজেক্ট ব্রাউজার) আপনার মূল প্রকল্পের সমস্ত রেফারেন্স চেক করতে পারেন। একটি dll ফাইলের একটি রেফারেন্স সর্বদা একটি সংস্করণ নম্বর আছে। উদাঃ টেস্টলিব [১.০.০.০]

সমাধান: লাইব্রেরী প্রকল্পে আপনার মূল প্রকল্পের বর্তমান তথ্যসূত্র মুছুন এবং আবার সেই লাইব্রেরি প্রকল্পে রেফারেন্স যুক্ত করুন।


1

এখানে বেশিরভাগ সমাধানের চেষ্টা করার পরে, আমি অবশেষে একবারই ক্লিক একবারের প্রকল্প থেকে এই প্রকল্পের জন্য একটি রেফারেন্স যুক্ত করেছি, এটি এটি অন্তর্ভুক্ত থেকে অন্তর্ভুক্ত (অটো) এ পরিবর্তন করে এবং শেষ পর্যন্ত এটি কাজ করে।


1

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


0

আমি একটি সমাধান ডাব্লু / 6 প্রকল্পে এটি ছিল। আমার প্রকল্পগুলির মধ্যে একটি নাম ফাইলটিকে রেফারেন্স হিসাবে উল্লেখ করছে assembly অন্যরা সবাই প্রকল্পের রেফারেন্সের দিকে ইশারা করছিল।

আমি সাধারণত এই ক্ষেত্রে একটি পৃথক ত্রুটি পেতে।

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

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


0

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


0

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


0

আমি এ জাতীয় সমস্যার মধ্যেও ডুবছি, কেবলমাত্র আমাকে যা করতে হয়েছিল তা হল .dll (রেফারেন্সে পাওয়া যেতে পারে) মুছে ফেলা যা ত্রুটি সৃষ্টি করে এবং এটিকে আবার যুক্ত করে

একটি যাদুমন্ত্র মত কাজ করে.



0

কেবল প্রকাশ -> অ্যাপ্লিকেশন ফাইল -> এ যান এবং অন্তর্ভুক্ত করার জন্য পূর্বশর্ত থেকে প্রভাবিত dll প্রকাশের স্থিতি পরিবর্তন করুন! এটি আমার পক্ষে কাজ করেছিল!

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