問題タブ [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# - Windows Mono C#プロジェクトからLinuxgccでコンパイルされた.so共有ライブラリにアクセスできません
設定は次のとおりです。
Linuxでコンパイルしてlibrary.soファイルを作成した共有ライブラリ(extern"C"メソッドを使用したc++)があります。
同じボックス(Ubuntu)でMono Developを使用し、DLLImport( "library.so")を実行して、extern関数に問題なくアクセスできました。
その.soファイルをWindowsマシン(Win7)にコピーして同じことを実行しようとすると、問題が発生しますが、今回は、MonoDevelopを使用してWindowsでMonoを実行します。
System.BadImageFormatExceptionが発生します。library.soファイルの前に「./」を実行しようとしましたが、何も役に立ちません。私はそれが正しいディレクトリを見ていることを確認し、再確認しました。
Windows / Monoでこの.soファイルにアクセスできない理由に欠けている大きなものはありますか?
c# - C# プログラムを任意のオペレーティング システムでコンパイルできるようにする
C# 2008 で XP 32 ビット Windows オペレーティング システム上で C# プログラムの作成を開始しましたが、現在は Windows 7 64 ビット オペレーティング システムで開こうとしています。発生する問題は、64 ビット システムで c# 2010 でプログラムを実行できず、Initialize Component(); を通過しないことです。私のコードの行。「BadImageFormatException was unhandled」というエラーが表示されます。これは、開いている場所のシステム変更が原因だと思います。これに関する助けがあれば、私たちは素晴らしいです。
ありがとう
.net - 64ビットコードとして実行されている「任意のCPU」用にコンパイルされた.NETアプリケーションから64ビットネイティブC++DLLファイルを呼び出すことは可能ですか?
私は.NET3.5でプログラムを書いていますが、そのプログラムは、場所によってはハードウェアAPIからコードを実行する必要があります。これはすべて問題なく、32ビットのWindows 7、WindowsXPなどで動作します。問題はWindows764ビットにあります。
「任意のCPU」でコンパイルしますが、Windows764ビットでは64ビットで実行されます。したがって、この1つのハードウェアとインターフェイスするには、アンマネージC++で独自のラッパーDLLを作成する必要がありました。
したがって、すべてを32ビットで動作させた後、スイッチを切り替えて64ビットに移行しましたが、そこに問題があります。私が抱えている問題は、プラットフォームが同じであっても、StackOverflowの質問「間違った形式でプログラムをロードしようとしました」とは正反対です...その質問では、彼は自分のコードを取得しようとしていますWindows 7で32ビットで実行する(強制的に実行する)。
このハードウェアには64ビットAPIがあるので、今はやりたくありません。そこで、コードを64ビットでコンパイルし、試行錯誤の末、 64ビットで正しくLINKを取得し、純粋な64ビットのネイティブC ++ DLLを使用して、それをDepends.exe確認しました。ここでDepends.exe、ベンダーのDLLファイルも純粋な64ビットとして表示されます。初めてコードが機能しなかったので、私はメーカーと一緒に調査を開始し、彼らは私の助けを借りてコードをかなり更新しました、または私の問題で言うべきです... :)
ですから、短編小説では、これを可能な限り単純なセットアップに分解しました。私のDLLファイル、HW API.dll(これもネイティブC ++です)、および.NETアプリケーションは、同じP / Invoke構文を使用してそれらを呼び出し、64ビットバージョンと同じように呼び出します...
参考までに、私の電話は次のようになります。
ここで、.NETからこのコードを呼び出そうとすると、例外エラーが発生します。
これにより、私はSOMEHOW、32ビットの何かが干渉していると信じるようになります...どうすればそれを知ることができますか?つまり、はい、私はすでにリソースエクスプローラーを調べて、DLLファイルが正しい場所から読み込まれていることを確認しました。また、それらは64ビットでコンパイルされ、.NETアプリケーションは64ビットで実行されています。 、「任意のCPU」用にコンパイルされている場合でも。私はこれをすべて確認しました...
私はここで何かについて完全に愚かですか?P / Invokeが64ビットなどで機能しないことを示す段落を見逃しましたか?そして、私がそうした場合、なぜそれは悪い画像フォーマットの例外をスローするのですか?
私がやっていることは可能かどうか?64ビットの.NETアプリケーションは、64ビットのネイティブDLLファイルをロードして呼び出すことができますか?そして、そのDLLファイルは別のネイティブ64ビットDLLファイルに動的にリンクできますか?マネージド64ビットDLLファイルをウェッジDLLファイルとして使用した場合、違いはありますか?ハードウェアベンダーのDLLファイルにいくつかの呼び出しがあるため、ウェッジDLLファイルのみを使用しています。それらはvoidポインターをバッファーに渡すなど、C#で行うには複雑すぎます(「安全でないコードを許可する」などをチェックする必要があります)。したがって、私のウェッジのアイデアははるかにうまく機能しました...私はすべてを行いますC ++で手間をかけ、より構造化されたデータをC#コードに戻します。
database - VisualStudio セットアップ プロジェクト: CustomAction BadImageFormatException を介してデータベースを含むプロジェクトをデプロイする
MSSQL データベースを使用し、この VisualStudio セットアップ プロジェクト用に生成されたプロジェクトのソリューションがあります。次に、インストール時にデータベースをデプロイするインストーラー クラスを使用して別のプロジェクトを作成しました。
そこで、このチュートリアルを使用して CustomAction インストーラー クラスを生成し、同様のこのC# ソリューションも試しました。
現在セットアップ プロジェクトを実行していて、アプリケーションをインストールしようとすると、常にエラーが発生します。
インストールの初期化中に例外が発生しました: System.BadImageFormatException: ファイルまたはアセンブリ ... \ CustomAction.dll またはその依存関係の 1 つが見つかりません。アセンブリは、現在読み込まれている用語よりも新しい用語によって挿入されているため、読み込むことができません。
エラーが理解できることを願っています。ドイツ語から英語に翻訳しました...
これを解決するためのヒントやヒントに感謝します。
よろしく
c# - hnetcfg.dll が BadImageFormatException をスローする
この質問c:\windows\system32\hnetcfg.dllから Windows ファイアウォールの管理を参照するコードを実行すると、DLL が読み込まれるとすぐにエラーが発生します。BadImageFormatException
検査のためにNUnitで414KB の DLL ファイルを開くと、同じ例外がスローされます。
Windows 7 を実行しています。解決策はありますか?
.net - Bad Image Format 例外の問題
アセンブリをロードしてそのバージョンを抽出する exe ファイルを実行しようとしています。ファイルは win xp では問題なく動作しますが、win 7 で実行するとクラッシュし、次の例外が発生します。
誰もこの問題に直面しましたか? この問題の考えられる解決策は何ですか?
.net - System.BadImageFormatException 不正な形式のプログラムをロードしようとしました
パブリック .NET API に基づく別のプログラムのプラグインを作成しています。通常、これらのプラグインは、API アセンブリを参照するクラス ライブラリ DLL を作成することによって作成されます。次に、API アセンブリの基本コマンド クラスから継承することにより、コマンド クラスが作成されます。次に、アプリケーションはプラグイン DLL ファイルを参照するように設定され、ユーザーが要求したときにカスタム コマンド クラスを実際に起動する役割も果たします。
ただし、現在、 を使用して一部のコード生成を自動化しようとしSystem.CodeDOMており、API アセンブリの型に基づいて新しいクラス型を自動的に生成する単純なコンソール アプリケーションを作成したいと考えています。
それでも、アプリケーションを実行しようとすると、次の例外が発生します。
System.BadImageFormatException は処理されませんでした メッセージ: ファイルまたはアセンブリ 'RevitAPI、Version=2011.0.0.0、Culture=neutral、PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。不正な形式のプログラムをロードしようとしました。
通常、プラグイン アセンブリのターゲット フレームワークを 3.5 に設定する必要があります。しかし、コンソール アプリケーションのターゲット フレームワークを 2.0 に設定すると、上記のエラーが解消されることがわかりました。ただし、私のコンソール アプリケーションは、ターゲット フレームワークが 3.5 に設定されている私の他のクラス ライブラリを既に参照しています。そして、2.0 フレームワークを中心にそれらを書き直したくないのです。
sqlite - ServiceStack の例を実行すると、System.BadImageFormatException が発生します。
ServiceStack Examples プロジェクトを実行しようとしています。Web クライアントを実行すると、次のエラーが表示されます。
最新の System.Data.SQLite.dll ファイルをダウンロードして使用しようとしましたが、それでも同じエラーが発生します。Windows 7 64 ビット ボックスで 64 ビット VS2010 を実行しています。
c# - 他の例外の StackTrace から BadImageFormatException を取得する
私のサーバーで例外が発生しましたが、それをキャッチしましたが、問題ないようです。
問題は、そのStackTraceを書いているときにBadImageFormatExceptionが発生することです。
サーバーをデバッグしようとしました。例外をキャッチするときにブレークポイントで停止し、そのすべてのフィールドを確認できますが、StackTrace には BadImageFormatException が表示されます。
この問題の原因は何ですか?
私のサーバーの詳細 -
.NET FW 4
を使用して C# で記述されています。また、Managed C++ で記述された FrameWork も使用しています。
サーバーを x86 プラットフォームにコンパイルします。そして、x64 マシンでサーバーを実行します。
完全な BadImageFormatException -
System.BadImageFormatException: メソッドのパラメーターとシグネチャが一致しません。System.Reflection.RuntimeParameterInfo.GetParameters (IRuntimeMethodInfo methodHandle、MemberInfo メンバー、署名 sig、ParameterInfo& returnParameter、Boolean fetchReturnParameter) で System.Reflection.RuntimeMethodInfo.FetchNonReturnParameters() で System.Reflection.RuntimeMethodInfo.GetParameters() で System.Diagnostics.StackTrace .ToString(TraceFormat traceFormat) で System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) で System.Exception.GetStackTrace(Boolean needFileInfo) で System.Exception.ToString(Boolean needFileLineInfo) で System.Exception.ToString() で log4net. log4net.ObjectRenderer の ObjectRenderer.DefaultRenderer.RenderObject(RendererMap rendererMap、Object obj、TextWriter ライター)。
.net - CorFlags.exe、System.Data.SQLite.dll、BadImageFormatException
http://sqlite.phxsoftware.com/からCorFlags.exeを実行すると、次の出力が生成されます。System.Data.SQLite.dll
ご覧のとおり、32BITは指定されておらず、PEに等しいPE32です。Moving from 32-bit to 64-bit application development on .NET Frameworkによると、これはアセンブリがAny CPUであることを意味します。ただし、64 ビット アプリケーションのアセンブリを使用すると、次のエラーが発生します。
System.BadImageFormatException: ファイルまたはアセンブリ 'System.Data.SQLite' またはその依存関係の 1 つを読み込めませんでした。不正な形式のプログラムをロードしようとしました。ファイル名: 'System.Data.SQLite'
CorFlags.exe がAny CPUを報告している場合、例外が発生するのはなぜですか? アセンブリが間違って でマークされてい32BIT: 0ませんか?
64ビットバージョンも利用できることは知っていますが、エラーの原因を知りたいだけです.