সমস্যা সমাধানের জন্য ব্যাডমাইজফর্ম্যাটেক্সেক্সেশন


106

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

উইন্ডোজ 7 64-বিট (দেব) এবং উইন্ডোজ এক্সপি এসপি 3 32-বিট (লক্ষ্য) সিস্টেমে সমস্যা বিদ্যমান exists

আমি এ পর্যন্ত চেষ্টা করেছি এখানে:

  • প্ল্যাটফর্ম টার্গেটের মতো যাচাই করা বিল্ড সেটিংস সমস্ত একই (x86)।
  • এসেম্বলি বাইনারিগুলি বৈধ ছিল তা নিশ্চিত করার জন্য / ভার্বোস বিকল্পের সাথে peverify ব্যবহার করুন।
  • যে কোনও লোডিং সমস্যা দেখার জন্য fuslogvw ব্যবহার করে।
  • নিখোঁজ ফাইল বা সমাবেশগুলি সন্ধান করতে চেকএএসএম ব্যবহার করা হয়েছে।

এই সমস্ত চেক কিছুই পরিবর্তন হয়নি। আমি আমার কর্পোরেট মাস্টারদের গোপনীয়তা রক্ষা করতে কিছু নাম পরিবর্তন করে নীচে ব্যতিক্রম তথ্যের পুরো পাঠ্যকে অন্তর্ভুক্ত করেছি।

সিস্টেম.বেডিআইমেজ ফরমেট এক্সসেপশন আনহ্যান্ডেল ছিল
  বার্তা = ফাইল বা অ্যাসেমবিলি 'এক্সএক্সএক্সএক্স ডিভাইসস, সংস্করণ = 1.0.0.0, সংস্কৃতি = নিরপেক্ষ, পাবলিককি টোকেন = নাল' বা এর অন্যতম নির্ভরতা লোড করা যায়নি। একটি ভুল ফর্ম্যাট সহ একটি প্রোগ্রাম লোড করার চেষ্টা করা হয়েছিল।
  উত্স = XxxDevicesService
  ফাইলের নাম = এক্সএক্সএক্সএক্স ডিভাইসস, সংস্করণ = 1.0.0.0, সংস্কৃতি = নিরপেক্ষ, পাবলিককি টোকেন = নাল
  ফিউশনলগ = এসেম্বলি ম্যানেজার থেকে লোড করা হয়েছে: সি: \ উইন্ডোজ \ মাইক্রোসফ্ট.নাইট \ ফ্রেমওয়ার্ক 64 4 v4.0.30319 \ clr.dll
এক্সিকিউটেবল সি এর অধীনে চলছে: \ দেব \ টিমই \ বিন \ রিলিজ \ এক্সএক্সএক্সএডেভিসেসসওয়ার্স.ভিশোস্ট.এক্সই
--- একটি বিশদ ত্রুটি লগ অনুসরণ করা হয়। 

=== প্রি-বাইন্ডের স্থিতি সম্পর্কিত তথ্য ===
লগ: ব্যবহারকারী = XXX
লগ: ডিসপ্লেনাম = এক্সএক্সএক্সডিভাইসস, সংস্করণ = 1.0.0.0, সংস্কৃতি = নিরপেক্ষ, পাবলিককি টোকেন = নাল
 (পুরোপুরি-নির্দিষ্ট)
লগ: অ্যাপবেস = ফাইল: /// গ: / দেব / টিম / বিন / প্রকাশ /
লোগো: প্রাথমিক প্রাইভেটপথ = NULL
কলিং অ্যাসেমবিলি: এক্সএক্সএক্সএডেভিসেসসওয়ারিওস, সংস্করণ = 1.0.0.0, সংস্কৃতি = নিরপেক্ষ, পাবলিককি টোকেন = নাল।
===
লোগো: এই বাইন্ডটি ডিফল্ট লোড প্রসঙ্গে শুরু হয়।
লোগো: অ্যাপ্লিকেশন কনফিগারেশন ফাইলটি ব্যবহার করে: সি: \ টিমই \ বিন \ রিলিজ \ এক্সএক্সএক্সডেভিসেসসোসরস.ভিশোস্ট.এক্সে.কনফিগ
লগ: হোস্ট কনফিগারেশন ফাইলটি ব্যবহার করে: 
লগ: সি: \ উইন্ডোজ \ মাইক্রোসফ্ট। নেট \ ফ্রেমওয়ার্ক 64 4 v4.0.30319 \ কনফিগারেশন \ মেশিন.কনফিগ থেকে মেশিন কনফিগারেশন ফাইলটি ব্যবহার করা।
লোগো: নীতিটি এই সময়ে রেফারেন্সে প্রয়োগ করা হচ্ছে না (ব্যক্তিগত, কাস্টম, আংশিক, বা অবস্থান ভিত্তিক অ্যাসেমব্লিং বাইন্ড)।
লোগো: নতুন ইউআরএল ফাইল ডাউনলোড করার চেষ্টা করা হচ্ছে: /// সি: / টিম / বিিন / রিরিজ / এক্সএক্সএক্স ডিভাইসস.ডিএলএল।
ERR: সমাবেশের সেটআপ সম্পূর্ণ করতে ব্যর্থ হয়েছে (এইচআর = 0x8007000 বি)। অনুসন্ধান শেষ হয়েছে।

  ক্ষেত্রে স্টেকট্র্যাস:
       এক্সএক্সএক্সএক্সডিভিসেসসোর্স.প্রগ্রাম.মেইনে (স্ট্রিং [] আরগস)
       System.appDomain._nExecuteAsorses এ (রানটাইমঅ্যাস্পাবল্ড অ্যাসেমব্লিং, স্ট্রিং [] আরগস)
       মাইক্রোসফ্ট.ভিজুয়ালস্টুডিও.হোস্টিংপ্রসেস.হোস্টপ্রোক.রুনউসারসঅ্যাসাব্যাস ()
       System.Threading.ExecutionContext.Run এ (এক্সিকিউশনকন্টেক্সট এক্সিকিউশন কনটেক্সট, কনটেক্সট ক্যালব্যাক কলব্যাক, অবজেক্ট স্টেট, বুলিয়ান সিঙ্কসিটিএক্স উপেক্ষা করুন)
       System.Threading.ExecutionContext.Run এ (এক্সিকিউশনকন্টেক্সট এক্সিকিউশন কনটেক্সট, কনটেক্সট কলব্যাক কলব্যাক, অবজেক্ট স্টেট)
       System.Threading.ThreadHelper.ThreadStart () এ
  InnerException: 
c#  .net  exception 

আপনি কি আদৌ দেশীয় কোড /। নেট মিশ্রিত করছেন?
কিথ নিকোলাস

1
আপনি সঠিক পথে আছেন যে এই ব্যতিক্রমটি x86 / x64 বিট পার্থক্যের সাথে সম্পর্কিত। আমি ধরে নিলাম এটি ঠিক কোনও ওয়েব অ্যাপ্লিকেশন নয়? এছাড়াও, সমাবেশ কি ধরণের XxxDevicesService? এটি কি কোনও নির্দিষ্ট প্ল্যাটফর্মের জন্য সংকলিত (যেমন 32 বিট)? যদি তা হয় তবে অবশ্যই আপনার প্ল্যাটফর্মটি 32 বিটে সংকলন করতে হবে।
রেডডগ

উত্তর:


121

প্ল্যাটফর্ম টার্গেটের মতো যাচাই করা বিল্ড সেটিংস সমস্ত একই (x86)।

ক্র্যাশ লগ এটাই বলে না:

এসেম্বলি ম্যানেজার থেকে লোড করা হয়েছে: সি: \ উইন্ডোজ \ মাইক্রোসফ্ট.নেট \ ফ্রেমওয়ার্ক 64

নামের মধ্যে 64 টি নোট করুন , এটি ফ্রেমওয়ার্কের 64-বিট সংস্করণের হোম version আপনার ক্লাস গ্রন্থাগার প্রকল্প নয়, আপনার EXE প্রকল্পে লক্ষ্য প্ল্যাটফর্ম সেটিংস সেট করুন । এক্সএক্সএক্সএক্সডিভিসেসওয়ার্স এএসইই প্রকল্প প্রক্রিয়াটির সাক্ষ্য নির্ধারণ করে।


6
আপনি যখন EXE প্রকল্পটি যাচ্ছেন - ডিবাগ এবং রিলিজ উভয়ই পরীক্ষা করে দেখুন । : /
ক্রিস

44

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

ফাইল বা সমাবেশ 'ওরাকল.ডাটাএ্যাক্সেস' বা এর অন্যতম নির্ভরতা লোড করা যায়নি। একটি ভুল ফর্ম্যাট সহ একটি প্রোগ্রাম লোড করার চেষ্টা করা হয়েছিল।

আমি নিউগেট প্যাকেজগুলি পুনরায় লোড করেছি, আমি ডিএলএলগুলির অনুলিপিগুলি ব্যবহার করেছি যা অন্যদের জন্য বিভিন্ন অ্যাপ্লিকেশনগুলিতে কাজ করে, আমি নির্ভরযোগ্য সমাবেশে কোডবেসটি সেট করেছিলাম আমার প্রকল্পের বিন ফোল্ডারের দিকে ইঙ্গিত করার জন্য, আমি কপিরলোকালকে সত্য বা মিথ্যা হিসাবে চেষ্টা করেছি, আমি সবকিছু চেষ্টা করেছি অবশেষে আমি আমার কোডটি যাচাই করতে চেয়েছিলাম এবং অন্য একটি ঠিকাদার হিসাবে আমার কাছে সাবভার্সন সেটআপ হয়নি enough এটি ভিএস-এ আটকানোর কোনও উপায় সন্ধান করার সময় আমি উত্তরটি ছড়িয়ে দিয়েছি। আমি যা কাজ করে দেখেছি তা হল সরঞ্জামগুলি>> বিকল্প মেনুতে প্রকল্পসমূহ এবং সমাধানগুলি => ওয়েব প্রকল্প বিভাগের অধীনে "ওয়েব সাইট এবং প্রকল্পগুলির জন্য আইআইএস এক্সপ্রেসের bit৪ বিট সংস্করণ ব্যবহার করুন" বিকল্পটি পরীক্ষা করা ছিল।


3
কী জীবন রক্ষাকারী !! ধন্যবাদ. আমার প্রকল্পটি কার্যকরভাবে x64 হওয়ায় আমার পক্ষে আমাকে এটি পরীক্ষা করে দেখতে হয়েছিল। আবার ধন্যবাদ!!!
ভাইপার

আমি এখানে যে সমস্ত সহায়তা পেয়েছি তার পরে, এর থেকে কিছুটা এগিয়ে দিতে পেরে আমি খুব আনন্দিত!
জোসেফ মরগান

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

অ্যাপ্লিকেশন পুলে "32-বিট অ্যাপ্লিকেশন সক্ষম করুন" সম্পর্কে উপরে @ এরিক এস্কিলডেনের মন্তব্যে একটি সংযোজন, এমনকি আপনি লাইভ পরিবেশে এটি না করতে চাইলে, সেই স্যুইচটি উল্টিয়ে আপনি 32 এর মুখোমুখি হচ্ছেন কিনা তা সম্পর্কে অতিরিক্ত ক্লু সরবরাহ করতে পারে -বিট / -৪-বিট সমস্যা বা অন্য কিছু।
একটি সিভিএন

পরিস্ফুটন! ঐটা এটা ছিল.
#Littlejohn

21

আমি যে কাজটি দেখেছি তা হল "ওয়েব সাইটস এবং প্রজেক্টের জন্য আইআইএস এক্সপ্রেসের bit৪ বিট সংস্করণ ব্যবহার করুন" বিকল্পসমূহ => বিকল্প মেনুতে প্রকল্পসমূহ এবং সমাধানগুলি => ওয়েব প্রকল্প বিভাগের অধীনে বিকল্পটি পরীক্ষা করা।


আপনি ত্রাণকর্তা। +1
অমিত কুমার

আমি ভিএস পুনরায় ইনস্টল করেছিলাম এবং এই সমস্যাটির সমস্যার সমাধান করছি (ধন্যবাদ - এই সমাধানটি কাজ করেছে)। আমার কাছে গল্পটির নৈতিকতা যদি আমি জানতে পারি যে আমি কোনও কোড শুরু না করে শুরু করেছি, সম্ভবত আমার প্রথমে ভিএসের কনফিগারেশনটি লক্ষ্য করা উচিত।
taylorswiftfan

@ লুচি চেক বক্সটি 'ওয়েব সাইট এবং প্রকল্পগুলির জন্য আইআইএস এক্সপ্রেসের bit৪ বিট সংস্করণ ব্যবহার করুন' উপযুক্ত
কে_কুমার

দয়া করে লুসিকে বলুন
কে_কুমার

12

আপনি .csproj এর লক্ষ্য কাঠামো পরিবর্তন করে এবং আপনি যেটি দিয়ে শুরু করেছিলেন তার দিকে ফিরিয়ে দিলে এটি সাধারণত ঘটে যেতে পারে।

অ্যাপকনফাইগের স্টার্টআপ ট্যাগের আওতায় সমর্থিত রুনটাইম সংস্করণ = "সিএস প্রকল্প লক্ষ্য থেকে আলাদা রানটাইম" নিশ্চিত করুন কিনা তা নিশ্চিত করুন।

নিশ্চিত হয়ে নিন 2 এর অর্থ এই যে অন্য ফাইলগুলি এবং .csproj ফাইলে সংজ্ঞায়িত সংজ্ঞায়িত ফাইলগুলির মধ্যে আর কোনও রানটাইম মিল নেই কিনা তা দেখার জন্য বৈশিষ্ট্য ফোল্ডারে থাকা অন্যান্য অটোজেনারেটেড বা অন্যান্য ফাইলগুলি পরীক্ষা করা checking

ত্রুটি কাটিয়ে উঠতে আপনি প্রকল্পের বৈশিষ্ট্যগুলির সাথে বিভিন্ন জিনিস চেষ্টা শুরু করার আগে এগুলি আপনার প্রচুর সময় সাশ্রয় করতে পারে।


আমি একটি অনুরূপ সমস্যা জুড়ে এসেছি এবং আপনার উত্তরটি ছিল আমার সমাধান for আমার app.config বিভিন্ন সমর্থিত রানটাইম ছিল।
ক্রিসটিয়ান কিস

9

আমার কাছে একই সমস্যা ছিল যদিও আমার কাছে -৪-বিট উইন্ডোজ have রয়েছে এবং আমি প্রকল্পের বৈশিষ্ট্যে একটি bit৪ বিট ডিএলএল বি / সি লোড করছিলাম | বিল্ড আমি "32-বিট পছন্দ" পরীক্ষা করেছিলাম। (কেন এটি ডিফল্টরূপে সেট করা আছে তা জানেন না)। একবার আমি এটি পরীক্ষা করে নিই, সবকিছু ঠিকঠাক ছিল


1
একই অবস্থা. এই কৌশলটি। একটি 64৪-বিট অ্যাসেমব্লিকে উল্লেখ করা হয়েছে এবং সক্রিয় বিল্ড কনফিগারেশনটি যে কোনও সিপিইউতে সেট করা হয়েছিল তবে এটি "32-বিট পছন্দ করুন" সেটিং এর ফলে অবশ্যই 32-বিট অ্যাপ্লিকেশনটি ব্যবহার করা হয়েছিল এবং সমস্যাগুলির কারণ হয়েছিল।
বার্নোল্লি আইটি

চয়ন করা কোন সিপিইউ পরিবর্তে এক্স 86 ডিবাগ মোড এবং একটি যাদুমন্ত্র মত কাজ করেন।
কার্ডি ডিমোনাকো জুনিয়র

7

আপনার অ্যাপ্লিকেশনটিকে .NET ফ্রেমওয়ার্ক 4.5 (উদাহরণস্বরূপ) টার্গেট করার সময় আপনিও এই ব্যতিক্রমটি পেতে পারেন এবং আপনার নিম্নলিখিত অ্যাপ্লিকেশন কনফিগ রয়েছে:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727" />
    <supportedRuntime version="v4.0" />
  </startup>
</configuration>

অ্যাপ্লিকেশনটির ডিবাগ চালু করার চেষ্টা করার সময় আপনি BadImageformatException পাবেন।

ভি 2.0 সংস্করণ ঘোষণা করে লাইনটি সরিয়ে ফেললে ত্রুটি মুছে যাবে।

আমি সম্প্রতি এই সমস্যাটি নিয়েছিলাম যখন আমি একটি পুরানো .NET 2.0 প্রকল্প থেকে লক্ষ্য প্ল্যাটফর্মটি .NET 4.5 তে পরিবর্তন করার চেষ্টা করেছি।


6

পটভূমি

আমরা আজই এটি পেতে শুরু করেছি যখন আমরা আইআইএস 6.2 চলমান একটি উইন্ডোজ 2012 আর 2 সার্ভারে অ্যানিসিপিইউ থেকে x64 এ আমাদের ডাব্লুসিএফ পরিষেবাটি চালু করেছি।

প্রথমে আমরা একমাত্র রেফারেন্স অ্যাসেমব্লিকে 10 বার পরীক্ষা করেছি, এটি নিশ্চিত করতে যে এটি আসলে কোনও x86 ডিএল নয়। এরপরে আমরা 32 টি বিট অ্যাপ্লিকেশন সক্ষম করে না তা নিশ্চিত করার জন্য অ্যাপ্লিকেশন পুলটি অনেকবার দেখেছি।

এক ঝাঁকুনিতে আমি সেটিংটি টগল করার চেষ্টা করেছি। এটি প্রমাণ করে যে আইআইএস-এ অ্যাপ্লিকেশন পুলগুলি ফলস -এর একটি 32-বিট অ্যাপ্লিকেশন মান সক্ষম করে , তবে আইআইএস কোনও কারণে আমাদের সার্ভারে এড়িয়ে চলেছিল এবং সর্বদা x86 মোডে আমাদের পরিষেবা চালায়।

সমাধান

  • অ্যাপ পুলটি নির্বাচন করুন।
  • চয়ন করুন সেট অ্যাপ্লিকেশন পুল ডিফল্টে ... বা উন্নত সেটিংস ...
  • পরিবর্তন 32 বিট অ্যাপ্লিকেশন সক্ষম করুন সত্যতে।
  • ঠিক আছে ক্লিক করুন ।
  • অ্যাপ্লিকেশন পুল ডিফল্ট সেট করুন ... বা উন্নত সেটিংস ... আবার চয়ন করুন Choose
  • পরিবর্তন 32-বিট অ্যাপ্লিকেশনগুলিকে ভুয়াতে সক্ষম করুন
  • ঠিক আছে ক্লিক করুন ।

4

একটি ভিন্ন "অ্যাপ্লিকেশন পুল" ব্যবহার করতে ওয়েব অ্যাপ্লিকেশন পরিবর্তন করে আমি এই সমস্যাটি সমাধান করেছি।


4

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

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


এটা আমার জন্য স্থির। আমার App.config আমার .NET 4.5.1 অ্যাপটি 2.0 সিএলআরতে সেট করছে!
জ্যারেড থারস্ক

4

টার্গেট বিল্ড এক্স 64 টার্গেট সার্ভার হোস্টিং আইআইএস 64 বিট

যদি অ্যাপ্লিকেশন বিল্ডটি 64৪-বিট ওএসকে টার্গেট করে তবে IS৪-বিট সার্ভারে আইআইএস হোস্টিংয়ে অ্যাপ্লিকেশন / ওয়েব অ্যাপ্লিকেশনটি মিথ্যা হিসাবে চলমান অ্যাপ পুলটিতে 32 বিট অ্যাপ্লিকেশন সক্ষম করুন।

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


2

অ্যাপ্লিকেশন দ্বারা ব্যবহৃত অ্যাপ্লিকেশন পুলটি নির্ধারণ করুন এবং 32 বিট অ্যাপ্লিকেশনগুলিকে ট্রুতে সক্ষম করে সেটিংসের সম্পত্তি সেট করুন। এটি অ্যাপ্লিকেশন পুলের অগ্রিম সেটিংসের মাধ্যমে করা যেতে পারে।


2

32-বিট বা 64-বিট প্ল্যাটফর্মের জন্য অ্যাপ্লিকেশনগুলি তৈরি করার সময় (আমার অভিজ্ঞতা ভিজ্যুয়াল স্টুডিও 2010 এর সাথে রয়েছে), কার্যকর করার জন্য সঠিক প্ল্যাটফর্ম সেট করতে কনফিগারেশন ম্যানেজারের উপর নির্ভর করবেন না। এমনকি মুখ্যমন্ত্রীর অ্যাপ্লিকেশনের জন্য x86 নির্বাচন করা থাকলেও প্রকল্পের বৈশিষ্ট্যগুলি পরীক্ষা করুন (ট্যাব তৈরি করুন): এটি এখনও "যে কোনও সিপিইউ" বলতে পারে। এবং যদি আপনি একটি 64-বিট প্ল্যাটফর্মে এক্সিকিউটেবল একটি "যে কোনও সিপিইউ" চালনা করেন তবে এটি 64-বিট মোডে চলবে এবং x86 প্ল্যাটফর্মের জন্য নির্মিত আপনার সংযুক্ত ডিএলএলগুলি লোড করতে অস্বীকার করবে।


1

সিস্টেমের উপর আপনার নির্ভরতা অপসারণ করুন.আপনার ওয়েব.কনফিগের সময়কাল, এটি আমার পক্ষে কাজ করেছে:

<dependentAssembly>
        <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.10.0" newVersion="4.0.10.0" />
</dependentAssembly>

আমার জন্য এটি ছিল System.Net.Http। এর জন্য ধন্যবাদ
স্নিকব্র্যাক

1

জন্য .NET কোর , একটি হল ভিসুয়াল স্টুডিও 2017 বাগ প্রকল্পের বৈশিষ্ট্য বিল্ড পৃষ্ঠা ভুল প্ল্যাটফর্ম লক্ষ্য দেখানোর জন্য সৃষ্টি করতে পারে। একবার আপনি আবিষ্কার করতে পারেন যে সমস্যাটি হ'ল, কাজের ক্ষেত্রগুলি বেশ সহজ। আপনি লক্ষ্যটিকে অন্য কোনও মানতে পরিবর্তন করতে পারেন এবং তারপরে এটি আবার পরিবর্তন করতে পারেন।

বিকল্পভাবে, আপনি .csproj এ একটি রানটাইম শনাক্তকারী যুক্ত করতে পারেন। যদি আপনাকে x86 হিসাবে চালানোর জন্য আপনার .exe প্রয়োজন হয় যাতে এটি কোনও x86 নেটিভ ডিএলএল লোড করতে পারে তবে এই উপাদানটিকে একটি এর মধ্যে যুক্ত করুন PropertyGroup:

<RuntimeIdentifier>win-x86</RuntimeIdentifier>

এটি স্থাপনের জন্য একটি ভাল জায়গাটি উপাদান TargetFrameworkবা TargetFrameworksউপাদানগুলির ঠিক পরে ।


1

আমি অবাক হয়েছি যে অন্য কারওাই এর উল্লেখ করেনি তাই আমি উপরের সাহায্যের (আমার ক্ষেত্রে) কেহ না ভাগ করে নিচ্ছি।

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

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

তথ্যসূত্র: https://developercommune.visualstudio.com/content/problem/117596/vbcscompilerexe-process-stays-runing- after- exiting.html


আমার সমাধানটি ছিল সমস্ত বিন এবং ডিবাগ ডিরেক্টরি মুছে ফেলা।
গাবনাইম

0

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

মূল (.exe অ্যাপ্লিকেশন প্রকল্প) এ স্টার্টআপ প্রকল্পটি পরিবর্তন করা আমার ক্ষেত্রে সমাধান ছিল


0

আমি যখন এই সমস্যার মুখোমুখি হয়েছি তখন নিম্নলিখিত বিষয়গুলি আমার জন্য সমাধান করেছে:

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


0

এই ত্রুটিটি "ফাইল বা সমাবেশের উদাহরণ" বা এর একটি নির্ভরতা লোড করা যায়নি typically একটি ভুল ফর্ম্যাট সহ একটি প্রোগ্রাম লোড করার চেষ্টা করা হয়েছিল "সাধারণত একটি ভুল অ্যাপ্লিকেশন পুল কনফিগারেশনের কারণে ঘটে।

  1. আপনার সাইটটি বর্তমানে চলছে এমন অ্যাপপুল নিশ্চিত করুন যে "32-বিট অ্যাপ্লিকেশন সক্ষম করুন" মিথ্যাতে সেট করা আছে।
  2. আপনার প্ল্যাটফর্মের জন্য আপনি সঠিক সংস্করণটি ব্যবহার করছেন তা নিশ্চিত করুন।
  3. আপনি যদি কোনও ওয়েবসাইটে এই ত্রুটিটি পেয়ে থাকেন তবে নিশ্চিত করুন যে আপনার অ্যাপ্লিকেশন পুলটি সঠিক মোডে চলমান আছে (3.0 সাইটগুলি 64 বিট মোডে চালানো উচিত)
  4. আপনার এটিও নিশ্চিত করা উচিত যে ভিজ্যুয়াল স্টুডিওতে যে সমাবেশটির উল্লেখটি প্যাকেজ ফোল্ডারে সঠিক ফাইলটি নির্দেশ করছে।
  5. আপনার 2.0 ডি সাইটের জন্য জিএসি-তে dll এর সঠিক সংস্করণ ইনস্টল করা আছে তা নিশ্চিত করুন।
  6. ওয়েব প্রকল্পের মাধ্যমে ডাব্লুএসওডলিবস প্রচারিত হওয়ার কারণে এটিও হতে পারে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.