সিস্টেম.বেডিআইমেজ ফরমেট এক্সসেপশন: ফাইল বা অ্যাসেমব্লি লোড করা যায়নি (ইনস্টলটুইল.এক্সে থেকে)


104

আমি ইনস্টলটুল.এক্সই ব্যবহার করে একটি উইন্ডোজ পরিষেবা ইনস্টল করার চেষ্টা করছি এবং ত্রুটির বার্তাটি পাচ্ছি

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

কি দেয়?


সম্পাদনা: (ওপি দ্বারা নয়) আরও বার হিট [ডাব্লু গুগলিবিলিটির জন্য] থেকে সম্পূর্ণ বার্তা নিষ্ক্রিয় করা হয়েছে:

সি: \ উইন্ডোজ \ মাইক্রোসফ্ট.নেট \ ফ্রেমওয়ার্ক \ v4.0.30319> ইনস্টলটুইট.এক্সি সি: \ xxx.exe মাইক্রোসফ্ট (আর)। নেট ফ্রেমওয়ার্ক ইনস্টলেশন ইউটিলিটি সংস্করণ 4.0.30319.1 কপিরাইট (সি) মাইক্রোসফ্ট কর্পোরেশন। সমস্ত অধিকার সংরক্ষিত.

ইনস্টলেশন শুরু করার সময় ব্যতিক্রম ঘটেছিল: সিস্টেম.বিডিআইমেজ ফরমেট এক্সসেপশন: ফাইল বা সমাবেশ 'ফাইল: /// সি: \ xxx.exe' বা এর অন্যতম নির্ভরতা লোড করা যায়নি। একটি ভুল ফর্ম্যাট সহ একটি প্রোগ্রাম লোড করার চেষ্টা করা হয়েছিল ..

উত্তর:


154

এটি কাউকে সহায়তা করে ক্ষেত্রে সম্পূর্ণতার জন্য আরও কিছু বিশদ ...

নোট করুন যে এই দিনে এই ব্যতিক্রমটির সর্বাধিক সাধারণ কারণটি 32 বিট-নির্দিষ্ট ( /platform:x86) ডিএলএলকে এমন একটি প্রক্রিয়াতে লোড করার চেষ্টা করছে যা bit৪ বিট বা তদ্বিপরীত (যেমন v৪ বিট-নির্দিষ্ট ( /platform:x64) ডিএলএলকে একটি প্রক্রিয়াতে লোড করতে পারে) 32 বিট)। যদি আপনার platformঅ-নির্দিষ্ট হয় (/platform:AnyCpu ), এটি উত্থাপিত হবে না (ধরে নেওয়া কোনও রেফারেন্সড নির্ভরতাগুলি ভুল সাক্ষরতার নয়)।

অন্য কথায়, চলমান:

% Windir% \ Microsoft.NET \ ফ্রেমওয়ার্ক \ v2.0.50727 \ installutil.exe

বা:

% উইন্ডির% \ Microsoft.NET \ ফ্রেমওয়ার্ক 64 \ v2.0.50727 \ installutil.exe

কাজ করবে না (অন্যান্য ফ্রেমওয়ার্ক সংস্করণে বিকল্প: v1.1.4322(কেবলমাত্র 32-বিট, সুতরাং এই সমস্যাটি উত্থাপিত হয় না)) এবং v4.0.30319উপরের পছন্দসই অনুসারে)।

স্পষ্টতই, অন্য উত্তরে কভার হিসাবে, একটির জন্য .NET সংস্করণ নম্বরও প্রয়োজন need installutil আপনি যে ইএসই / ডিএলএল ইনস্টলারটি চালাচ্ছেন তার মধ্যে আপনার => (সবচেয়ে বেশি =) চলার ।

পরিশেষে, দ্রষ্টব্য যে ভিজ্যুয়াল স্টুডিও ২০১০-এ, সরঞ্জামটি x86 বাইনারি তৈরি করতে পূর্বনির্ধারিত হবে ( আগের তুলনায় কোনও সিপিইউ নয় )।

সিস্টেম.বিডিআইমেজ ফর্ম্যাট এক্সপেশনের সম্পূর্ণ বিবরণ (একমাত্র কারণটি মিলেছে না বলে বিড়ম্বনা সত্যিই একটি স্থূল ওভারসিম্লিফিকেশন!)।

X64 ইনস্টলার এর BadImageFormatExceptionঅধীনে অন্য কারণ হ'ল ভিজ্যুয়াল স্টুডিও 2010-এ, ডিফল্ট ইনস্টল করা প্রজেক্ট টাইপ একটি 32-বিট শিম জেনারেট করে এমনকি একটি x64 সিস্টেমেও ("64-বিট পরিচালিত কাস্টম ক্রিয়াগুলির জন্য অনুসন্ধান করুন একটি সিস্টেম.ব্যাডিজ্যামেজ ফরমেট এক্সেকশন ব্যতিক্রম" চালু করুন) পৃষ্ঠা)..vdprojInstallUtilLib


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

আমার কাস্টম ক্রিয়া সহ আমার উইন্ডোজ ইনস্টলার রয়েছে ler আমার সেটআপটি x64 সিস্টেমে চালানো দরকার, সুতরাং কাস্টম ক্রিয়াকলাপগুলির বৈশিষ্ট্যগুলিতে সত্য "সত্যই" রান B৪ বিট "পরীক্ষা করতে হবে। এটি আমার সমস্যার সমাধান করেছে।
হেগেন

16

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


সেই লিঙ্কটি শেষ হয়ে গেছে বলে মনে হচ্ছে। যদিও খুব অবাক হয় না। 6 বছর আগে.
আল লেলোপাথ

3
এখানে এটা Archive.org এ web.archive.org/web/20100527204545/http://www.issociate.de/...
Epaga

9

আমি মনে করি আপনি 32-বিট অ্যাপ্লিকেশনটি ইনস্টল করতে এই সরঞ্জামটির 64-বিট সংস্করণ ব্যবহার করছেন। আমি আজও এই সমস্যার মুখোমুখি হয়েছি এবং এই ফ্রেমওয়ার্কের পথটি ব্যবহার করতে পেরেছি।

সি: \ উইন্ডোজ \ Microsoft.NET \ ফ্রেমওয়ার্ক \ v4.0.30319

এবং এটি আপনার 32-বিট অ্যাপ্লিকেশনটি ঠিক ঠিক ইনস্টল করা উচিত।


এটা আমার জন্য দৃশ্য ছিল। খুব সহায়ক উত্তর।
সিমোস ফ্যাসোলিওটিস

কমপক্ষে মূল উত্তর সংযোগ আছে stackoverflow.com/revisions/5229405/1
crusy

8

মূলটি হ'ল দুটি স্থানে থাকা প্রকল্পের জন্য ম্যাচ প্রসেসরের সেটিংস সেট করা।

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

এবং নীচের দেখানো হিসাবে টেস্ট মেনুতে >> টেস্ট সেটিংস >> ডিফল্ট প্রসেসর আর্কিটেকচার >> এ আর্কিটেকচার সেটিংস সমান sure

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

এটি ভিএস ২০১৩ এর জন্য তবে অন্যান্য সংস্করণগুলির ক্ষেত্রেও একই।

আপডেট - VS2019 এর জন্য:

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


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

6

ঠিক আছে, এটি আমার সমস্যা ছিল এবং এটি কী ঠিক করেছিল এটি উপরের সাথে খুব প্রাসঙ্গিক বলে মনে হচ্ছে।

আমি ভিজ্যুয়াল স্টুডিও 2010 এক্সপ্রেস ব্যবহার করছি। আমি একটি পরীক্ষা পরিষেবা লিখেছিলাম যা আসলে কিছুই করেনি। এটি কেবল পরে আসল জিনিসটির জন্য অনুশীলন ছিল।

আমি পরিষেবাটি লিখেছি এবং এটি ব্যবহার করে ইনস্টল করার চেষ্টা installutil.exeকরেছি এবং নিম্নলিখিত ত্রুটিটি পেয়েছি:

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

এখনও পর্যন্ত মূল লেখক হিসাবে একই।

ভিজ্যুয়াল স্টুডিও 2010 এর 32 বিট আউটপুট সম্পর্কে রুবনের উপরের পর্যবেক্ষণটি এখানে ত্রাণকর্তা ছিল।

আমি 64-বিট সংস্করণটি ব্যবহার করেছি installutil.exeএবং যথেষ্ট নিশ্চিত, ভিজ্যুয়াল স্টুডিও 2010 বিল্ডের আউটপুট 32-বিট ছিল। একটু অতিরিক্ত মান এখানে যোগ করার জন্য, আপনি যুক্ত সর্বশেষ .NET Framework এর 32 বিট সংস্করণ এবং জানতে পারেন installutil.exeযে সি: \ উইন্ডোজ \ Microsoft.NET \ ফ্রেমওয়ার্ক ফোল্ডার। installutil.exeআমার সমস্যার এই সংস্করণটি ব্যবহার করে ; কোনও দ্বিধা ছাড়াই পরিষেবা ইনস্টল!

আমি আশা করি এটি অন্য কাউকে সাহায্য করবে।


32-বিট সংস্করণটি আপনি কী বোঝাতে চেয়েছেন তা আমি জানি না তবে আমি এখানে একটিটি চেষ্টা করেছি এবং এটি সি: \ উইন্ডোজ \ মাইক্রোসফ্ট.নিট \ ফ্রেমওয়ার্ক \ v2.0.50727
ব্যবহারকারী 2568374

3

উল্লিখিত সমস্ত সমাধানের চেষ্টা করার পরে আমি আমার প্রকল্পে কনফিগারেশনে PlatformTargetএকরকম যুক্ত হওয়া দেখতে পেয়েছি AnyCPU.csproj।

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <PlatformTarget>x64</PlatformTarget>
</PropertyGroup>

লাইনটি সরানো আমার পক্ষে কাজ করেছিল।


আমার ক্ষেত্রে, যেখানে আমি একটি bit৪ বিট বিল্ড চাই, প্রপার্টিগ্রুপ নোডগুলির মধ্যে একটিতে <প্লাটফর্মট্রাট> এক্স </৪ </platforTarget> নোড অনুপস্থিত ছিল, সুতরাং সম্ভবত এটি 32 বিটের ডিফল্ট হয়ে খারাপ চিত্র বিন্যাস ত্রুটি ছুঁড়ে ফেলেছিল। আমি যখন সম্পত্তি গোষ্ঠীতে এই অনুপস্থিত নোডটি যুক্ত করলাম ত্রুটিটি অদৃশ্য হয়ে গেল।
টম রেগান

এই সমাধানটি চেষ্টা করার ফলে আমার জন্য আরও একটি সমস্যা দেখা দিয়েছে, যা কনফিগ ফাইলটি আউটপুট ডিরেক্টরিতে উপস্থিত থাকা সত্ত্বেও রানটাইম চলাকালীন অ্যাপ্লিকেশনগুলির অ্যাপসেটেশনগুলি লোড করা যাচ্ছিল না । তবে জারের পদ্ধতির চেষ্টা করার পরে ( Processor Architecture for AnyCPU Projects) সবকিছু আবার কাজ শুরু করে।
বিজন

1

আমার ভিএস 2015 ব্যবহার করে একটি উইনফর্মস প্রকল্পের সাথে এই সমস্যাটি ছিল My আমার সমাধানটি ছিল:

  1. প্রকল্পে ডান ক্লিক করুন
  2. বৈশিষ্ট্য নির্বাচন করুন
  3. "32-বিট পছন্দ করুন" পরীক্ষা করুন
  4. প্ল্যাটফর্ম লক্ষ্য: যে কোনও সিপিইউ

0

আমারো একই ইস্যু ছিল. আমি কার্যকর করার জন্য স্ট্যান্ডার্ড কমান্ড ব্যবহার করছি। এটি এক্স 6464 টি পরীক্ষার বিপরীতে এক্স ro64 রকে ডেকে আছিল। আমাকে এক্স 86 নির্দিষ্ট করা দরকার, নুনিট-রানারের এক্স 64 সংস্করণটি নয়।


0

সংক্ষেপে, উভয় বিল্ড এবং প্রকল্প \ বিল্ড \ প্ল্যাটফর্মটি bit৪ বিট সিস্টেমে bit৪ বিট পরিষেবা সফলভাবে ইনস্টল করার জন্য x64 এ সেট করতে হবে।


0

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


0

লাইভ টেস্টে এই বার্তাটি রাখার ক্ষেত্রে , তবে ইউনিট পরীক্ষায় নয় , কারণ নির্বাচিত সমাবেশগুলি ফ্লাই টুপিতে অনুলিপি করা হয় $(SolutionDir)\.vs\$(SolutionName)\lut\0\0\x64\Debug\। তবে কিছু সময় কয়েকটি অ্যাসেমব্লি নির্বাচন করা যায় না , যেমন, ইন্টারপ সি ++ / সি # প্রকল্পের ক্ষেত্রে ভিসি ++ ডল।

পোস্ট-বিল্ড xcopy সমস্যাটি সংশোধন করবে না, কারণ অনুলিপিযুক্ত ফাইলটি লাইভ টেস্ট ইঞ্জিন দ্বারা মুছে ফেলা হবে।

আজ অবধি একমাত্র কর্মসূচী (২৮ ডিসেম্বর 2018), লাইভ পরীক্ষাগুলি এড়ানো এবং বৈশিষ্ট্যের সাথে ইউনিট পরীক্ষায় সবকিছু করা to [TestCategory("SkipWhenLiveUnitTesting")] পরীক্ষা শ্রেণিতে বা পরীক্ষা পদ্ধতিতে প্রয়োগ করা করা।

এই বাগটি কোনও ভিজ্যুয়াল স্টুডিও 2017 এ 15.9.4 অবধি দেখা যায় এবং ভিজ্যুয়াল স্টুডিও টিম দ্বারা এটি সম্বোধন করা দরকার।


0

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

ওয়েবসাইট / ওয়েব অ্যাপ্লিকেশন চলমান রাইট ক্লিক অ্যাপপুল হোস্টিং এবং সক্ষম সক্ষম 32 বিট অ্যাপ্লিকেশন = মিথ্যা।

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


0

আমি আজ এই সমস্যার মুখোমুখি হয়েছি। আমার ক্ষেত্রে, আমার অ্যাপ্লিকেশনটির (64৪-বিট ডিএল-র একটি রেফারেন্স ছিল) প্ল্যাটফর্ম লক্ষ্য সেট করা হয়েছিল AnyCPUতবে প্ল্যাটফর্ম লক্ষ্য বিভাগের অধীনে Prefer 32-bit চেক বাক্সটি ডিফল্টরূপে টিক দেওয়া হয়েছিল। এটি সমস্যা ছিল এবং চেক-অন Prefer 32-bitবিকল্পের পরে সমস্ত সূক্ষ্মভাবে কাজ করে ।


0

আমরা একই লক্ষণ সহ একটি সমস্যার আলাদা সমাধান পেয়েছি:

আমরা যখন নেটটি 4.7.1 থেকে 4.7.2 এ প্রকল্প আপডেট করেছি তখন আমরা এই ত্রুটিটি দেখেছি।

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


0

সমস্যাটি হ'ল System.BadImageFormatException: Could not load file or assemblyএটির সাথে যুক্ত নয় installutil.exeএমন সবাইকে এই থ্রেডের সাথে যুক্ত করা হয়।

  1. যদি আপনার সমস্যা সম্পর্কিত WindowsBaseবা PresentationFramework dlls সম্পর্কিত হয় এবং আপনার বিশ্লেষকরা ইনস্টল পেয়েছেন তবে তা আপনার সমাধানের সমস্ত প্রকল্পের জন্য বা সেগুলির কোনওটির জন্যই ইনস্টল করা আছে কিনা তা নিশ্চিত করুন।

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

  2. .csprojআপনার লাইব্রেরির ফাইলের পুরো ফ্রেমওয়ার্কটি কেবল দু'টির চেয়ে উল্লেখ করুন dlls:

    <Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
    
      <PropertyGroup>
        <OutputType>Library</OutputType>
        <TargetFramework>netcoreapp3.0</TargetFramework>
        <RazorLangVersion>3.0</RazorLangVersion>
        <UseWpf>True</UseWpf>
      </PropertyGroup>
  3. সরান binএবং objডায়ার করুন, পরিষ্কার সমাধান এবং পুনর্নির্মাণ করুন।

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