問題タブ [badimageformatexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# で D DLL を使用する場合の BadImageFormatException
そこで、実験として、C# で D DLL を使用できるかどうかを調べてみることにしました。私は少しグーグルをして、このスレッドを見つけました。DString
C# の 4 回目の投稿でクラスに指定されたコードをコピー (C&P ではなく入力) し、 hereの DllMain() コードを使用しました。
私のDコード:
そして、C# でインポートしている実際の関数:
関数 helloWorld() を次のようにインポートします。
それはすべて正常にコンパイルされ、D または C# コンパイラからのエラーはありませんが、プログラムを (デバッガーの有無にかかわらず) 実行しようとすると、クラッシュします。デバッガーを使用すると、次のエラーが表示されます。
BadImageFormatException was unhandled
An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
何が起こっているのか、どうすれば修正できるのか、誰かが光を当てることができますか?
c# - モジュールにはアセンブリ マニフェストが含まれている必要がありました
C++ ライブラリといくつかの dll を使用する c# のプロジェクトがあります。私がそれを実行すると、うまくいきます。
ライブラリはAwesomiumで、c++ ライブラリと c# ラッパーの両方が含まれています
ASP.NET MVC 4 プロジェクトからこのプロジェクトへの参照を作成すると、次のエラーが発生します。
例外の詳細: System.BadImageFormatException: ファイルまたはアセンブリ 'file:///D:\Projects\Development\ProGamers\GamingSite\bin\avcodec-52.dll' またはその依存関係の 1 つを読み込めませんでした。モジュールには、アセンブリ マニフェストが含まれている必要がありました。
私が試したこと:
dll をコピーしますが、まだ機能しません (ファイルが存在します)。
GACに登録していますが、同じエラーが発生しました。
.NET Framework 4.0 を使用していることを確認してください (クライアント プロファイルではありません)。
競合を引き起こす同じ dll/exe 名の 2 つのファイル- 私はそれを持っていません。
ソリューションのプラットフォームを AnyCPU/Mixed Platforms に変更します。
スタックトレース:
.net - コマンド ライン パラメーターを使用して msbuild に .NET 4.0 をターゲットにした後、BadImageFormatException が発生する
アプリケーションと、それが依存する dll があり、csproj ファイルで .NET 3.5 をターゲットにするように設定されています。/p:TargetFrameworkVersion=v4.0
コマンド ライン パラメーターとして msbuild に (NAnt を使用して)渡すことにより、.NET 4.0 をターゲットとするこれら 2 つのプロジェクトをビルドしようとしています。ビルドは成功していますが、プログラムを実行すると、BadImageFormatException ですぐにクラッシュします - 「このアセンブリは、現在読み込まれているランタイムよりも新しいランタイムによって構築されており、読み込むことができません」
.NET リフレクターを使用して、出力の exe と dll のすべての参照を確認しました。すべてが .NET 4.0 dll を参照しています。.NET 2 を参照するものはありません。それでも、私のデバッガーは、mscorlib 2.0.50727.4971 がロードされたと言っています。
プロジェクト自体を .NET 4 を対象とするように変更してから、Visual Studio でビルドすると問題なく動作します。
次の調査ステップがどうなるかわからないので、ここで少し立ち往生しています。そのバージョンの mscorlib をロードしている理由がわかりません。
visual-studio-2010 - C#Assembly.LoadFromはBadImageFormatExceptionをスローします
私が作業しているプロジェクトの1つでは、関数を使用して、コードを.netDLLで完全に信頼できるアセンブリに動的にロードしAssembly.LoadFrom
ます。これまで、これは問題なく100%機能しています。
これで、上記を使用してロードする必要がある/ clr:pureでコンパイルされたVisual C++DLLができましたAssembly.LoadFrom
。実行するとBadImageFormatExceptionが発生しますが、これは本当に奇妙なことです。
Visual C ++プロジェクトには、次の3種類のCLRコンパイルオプションがあります。
/ clr
/ clr:pure
/ clr:safe
私に与えられた指示に従って、それは/ clr:pureの下でコンパイルされる必要があります。私の問題は、/ clr:pureを使用すると例外がスローされることです。/ clrに変更すると、例外もスローされます。/ clr:safeに変更すると、例外をスローせずにロードされます(これでテストが終了しました)。
したがって、これは実際には2つの部分からなる質問だと思います。
1)/ clr:safeは機能するが、他の2つは機能しないのはなぜですか?
2)/ clrで動作させるにはどうすればよいですか?
前もって感謝します!
silverlight - Silverlight - C++ dll の不正な画像形式の例外
C++ プロジェクトからビルドした dll があります。Silverlight プロジェクトでその dll を間接的に参照しています (つまり、Web プロジェクトは C# プロジェクトを参照しており、C# プロジェクトはこの dll を使用しています)。Silverlight アプリをビルドするたびに、これが表示されます
私の Silverlight Web プロジェクトは、問題なく他の C# プロジェクトを参照しています。C++ dll への参照を削除すると、すべて問題ないように見えます。
さまざまなオプションの2つの異なることにうんざりしました
- c++ dll を 32 ビットと 64 ビットでビルドしましたが、エラーに変化はありません
- C++ dll をビルドするときに .net プロファイルをクライアント バージョンに変更しましたが、まだ変更はありません
(Silverlight 5を使用しています)
誰かが何が起こっているのか理解するのを手伝ってくれますか?
ありがとうK
c# - C#からC ++クラスライブラリをロードする(64ビット)
C ++クラスライブラリと、ライブラリを使用するC#のWindowsアプリケーションがあります。
32ビットWindowsではうまく機能しますが、64ビットWindowsでは機能しませんBadImageFormatException
。
C ++クラスライブラリのプラットフォームを変更しようとしましたが、WIN32からWIN64に変更できません。
次の質問のいずれかでこの問題を解決できると思います。
- WIN32ライブラリをWIN64ライブラリに変換する方法はありますか?
- C ++ライブラリを使用せずにC#でC ++関数を呼び出す別の方法はありますか?
- 64ビットアプリケーションでWIN32ライブラリをロードすることは可能ですか?
64-bit - x64 上の IIS での BadImageFormatException
Windows 7 x64 を使用しています。MVC アプリを起動すると、BadImageFormatException が発生します。32 ビット アプリケーションが有効になっているアプリケーション プールで実行すると、例外はスローされません。global.asax の読み込みに問題があるようです。Fusion ログ (HKLM\software\Microsft\Fusion!EnableLog) レジストリ設定を有効にしました。これはログです:
異なるビルド構成を使用すると、次の結果になります。
x64、32 ビット アプリケーション プールのビルド false: エラー
x86、32 ビット アプリケーション プールのビルド false: エラー
AnyCPU のビルド、32 ビット アプリケーション プール false: エラー
x64、32 ビット アプリケーション プールのビルド true: エラー
x86、32 ビット アプリケーション プールをビルドする true: OK
AnyCPU のビルド、32 ビット アプリケーション プール true: OK
IIS エクスプレス: OK
64 ビット構成で使用される 32 ビット問題の dll を見つけるにはどうすればよいですか?
c# - opencv_imgproc.dll が BadImageFormatException をスローする
Emgu CV (x64 用) を使用して画像処理アプリケーションを構築しており、画像にフィルター機能を使用したいと考えています。だから、私は使用しますopencv_imgproc.dll
が、それはスローし ますBadImageFormatException
c# - System.BadImageFormatException どういう意味ですか?
重複の可能性:
installutil.exe を使用してサービスをインストールしようとすると、System.BadImageFormatException の「無効な形式」が発生する
Windows Service App をインストールすると、次の例外が発生します。
エラー 1001。インストールの初期化中に例外が発生しました: System.BadImageFormatException: ファイルまたはアセンブリ .....file.exe またはその依存関係の 1 つを読み込めませんでした。不正な形式のプログラムをロードしようとしました。
.net - 64 ビット マシンで「AnyCPU」をターゲットにすると、BadImageFormatException が発生する
ソースをWin7 64-bit
マシンに転送BadImageFormatException
すると、ソリューション ターゲットをコンパイルして実行しようとするとAnyCPU
.
では発生しませんXP 32-bit
。
何が問題ですか?