問題タブ [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# - x64 ASP.NET Web アプリケーションの展開時にアセンブリ エラーを読み込めません
一般的な http ハンドラーのみで構成される ASP.NET Web アプリケーションを開発しました。IISExpress を使用してローカルでテストされた x86 開発マシンで開始し、次に IIS6.0 を使用して 32 ビット Windows 2003 サーバーにデプロイしましたが、すべてうまくいきました。
私の会社では、64 ビット環境用に最適化されたサード パーティのライブラリを利用するために x64 環境に更新することにしたため、64 ビットの Windows Server 2012 R2 std エディションに切り替えましたが、いくつか問題があります。
私のローカルマシンでは、プラットフォームターゲットがx64に設定されたx64開発マシンに切り替えましたが、サーバーにデプロイすると常に
System.BadImageFormatException
メインアセンブリ上。エラーメッセージの他の部分は、アセンブリマネージャーがによってロードされていることを示しています
C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
そしてそれはで実行されます
C:\Windows\SysWOW64\inetsrv\w3wp.exe
SysWOW64 では 64 ビット環境内で 32 ビット アプリケーションを実行する必要があるため、運用マシンの IIS サーバーで x64 Web アプリケーションを実行できない可能性がありますか? もしそうなら、私はサーバーに直接アクセスできないことを知って、この問題を克服するために何をすべきですか.
ありがとうございました。
c# - badimageformatexception 動的コード生成
特定のdllから1つのメソッドを呼び出すことだけを目的とするCSharpCodeProviderを使用して、実行可能ファイルを動的に生成しようとしています。生成されたファイルを実行すると、BadImageFormatException が発生します。
プラットフォームは既に x86 に設定しています。メソッドを呼び出すコードを手動で記述し、Visual Studio でデバッグすると、完全に正常に動作します。
これは実行可能ファイルのコードです:
コードを動的にコンパイルする前に、アセンブリを追加します
実行可能ファイルをdllと同じディレクトリに書き込みます。
編集
これは、コンパイラを呼び出すために使用するコードです。
.net - デバッグ構成とリリース構成の両方でまったく同じ方法でビルドされたアプリケーションは、Win7 のリリースでは機能しません: BadImageFormatException
Win7 x64 マシンでアプリケーションを開発しています。
外部の .dll ファイルを呼び出すコードがいくつかあります。.dll は 32 ビット マシン用に作成されました。私が抱えている問題は、Debug
構成のデバッガーでアプリを実行すると、正常に動作することです。に切り替えるとすぐにRelease
、.dll 呼び出しを行うメソッドへのすべてのエントリが失敗します。
と の両方Release
のDebug
構成は同じで、アプリケーションは x86 用にビルドされています。この問題は、Windows 7 マシンでのみ発生します。XP を実行しているお客様は問題ありません。確かに、XP x64 を実行している顧客はいないので、それを確認できませんでした。
これが私のソリューション構成のイメージです。
Platform:
オプションをすべての可能な組み合わせに変更しましたが、まだ機能していません。設定で隠れているものはありDebug
ますか?
編集:私はこれを理解しましたが、私は本当に問題を理解していません.
Build
プロジェクト プロパティの各プロジェクトのタブ ( Compile
VB プロジェクトのタブ)Target CPU
で、AnyCPU ではなく x86 に設定する必要があります。
これは別の質問かもしれませんが、なぜですか?ソリューション全体のプラットフォームを x86 に設定することと、プロジェクトごとにターゲット CPU を x86 に設定することの違いは何ですか。また、上の画像では、フィールドの目的は何Platform
ですか??
visual-studio-2010 - Visual Studio で 64x プロジェクトをビルドできません
Visual Studio 2010 で非常にシンプルなソリューションを作成しました。このソリューションには次のものがあります。
- クラス ライブラリと「HelloWord」という名前のクラス
- ASP.NET Web サイト プロジェクトと、その中の「Home.aspx」という名前の 1 つのページ
- Home.aspx は「HelloWord」クラスを呼び出します
問題: Win7/64x マシンを使用しており、このプロジェクトを (Anycpu ではなく) 64x としてコンパイルしたい...実行しようとすると、このメッセージが表示される
System.BadImageFormatException: ファイルまたはアセンブリを読み込めませんでした...
なんで?
c# - PC または TFS ビルド経由で「プラグイン」DLL をビルドする断続的な BadImageFormatException
いくつかのアセンブリがメイン アプリケーションとは別にビルドされているアプリケーションがあります。実行時に、これらはメインの BIN フォルダーの外側のフォルダーに存在し、Assembly.LoadFrom を使用してメイン アプリケーションによって読み込まれます。これらの「プラグイン」アセンブリの VS プロジェクトには、メイン アプリケーションから構築された物理アセンブリへの参照があります。
メイン アプリケーションとプラグインの両方のビルドは、TFS ビルド サーバーによって作成されます。「プラグイン」アセンブリ プロジェクトで参照として使用されるアセンブリは、通常、メイン アプリケーションの TFS ビルドから取得されますが、PC で作成されたビルドから取得されることもあります。
私は毎日このアプリケーションに取り組んでおり、99% のプラグイン ビルドが正常に動作します。次に、明確な説明がなくても、プラグイン アセンブリがメイン アプリケーションによって読み込まれず、次のエラーが発生します。
これが発生した場合、それを解決するためにさまざまなことを行いますが、信頼できる解決策がありません。次のすべてを試してみると、最終的に問題は消えます。
- ビルドを再度実行する
- 「プラグイン」アセンブリ プロジェクトによって参照として使用されるアセンブリを、ビルド サーバーによってビルドされた新しい DLL で更新します。
- 同上、ただし、新しい DLL が PC に組み込まれている
- ビルドサーバーを再起動します
- ビルド サーバーに Windows Update をインストールする
- 家に帰って翌日、問題が解決していることを確認してください。
ビルド サーバーによって作成されたプラグイン ビルドでこの問題が発生する場合、PC で作成されたビルドが機能することがあります。それ以外の場合は、両方のビルドで問題が発生します。
これまで、メイン アプリケーションとプラグイン ソリューションの両方のビルド構成は、「任意の CPU」を対象としていました。今日 (対象となるプロセッサ アーキテクチャにこの例外を関連付ける S/O 投稿が多数あったようです)、両方をターゲット x64 に切り替えてみましたが、違いはありませんでした。
他に何を見るべきかわかりません...何かアイデアはありますか?
win-universal-app - VS2015 Universal APP - アセンブリをロードできませんでした (badimageformatexception)
ユニバーサル アプリ アプリケーションで nuguet からインポートされた System.Threading 、 System.IO または System.ReflectionTypeExtensions のメソッドを呼び出すとエラーが発生します。以下に例を示します。
電話 :
エラー:
javascript - x64 にコンパイルし、System.BadImageFormatException を受け取りました
「ライブラリ」のC#プロジェクトとプロジェクト「JavaScript」を使用したソリューションがあり、それをコンパイルすると、別のプロジェクトに取り込まれる.winmdファイルが生成されます。しかし、このプロジェクトは x86 上に構築されており、x64 で次のエラーが発生するようにアプリケーションを実行するには、x64 用にコンパイルする必要があります。
mono - BadImageFormatException: フィールド トークンを解決できませんでした
今日まで、すべてがコンパイルされ、完全に機能していました。私の知る限り、私のシステムは何も変わっていません。
突然、xbuild (mono 4.0.0) でコンパイルしたものすべてに、実行時に次のエラーが発生しました。
[ERROR] FATAL UNHANDLED EXCEPTION: System.BadImageFormatException: Could not resolve field token 0x040000de
Dockerの下でx64でコンパイルして実行しています。
これをデバッグする方法はありますか?