Windows 7 64の.NET ILMENGED DLLを使用したBadImageFormateXception
-
17-09-2020 - |
質問
Visual Studio 2008を使用してWindows 7 64ビットで開発しています.ILMERGEを使用して単一のDLLにマージするクラスライブラリのコレクションがあります。このマージされたDLLを使用しようとすると、
[ BADIMAGEFORTAXCEPTION ファイルまたはアセンブリをロードできませんでした'mymergeddll'またはその依存関係の1つ。誤った形式でプログラムをロードしようとしました。]
これを助けて探していて、MyMergeddllの各プロジェクトのビルドプロパティをターゲットx86に設定する必要があるように見えましたので、そうしました。 MyMergedDLLを参照しているWebサービスにMyMergedDLLをターゲットX86に参照しているWebサービス内のすべての非MSTestプロジェクトも設定します。私はまだこのエラーを得ています。
このブログエントリ< / a>信じられていること、私は行うことの結果としてこのエラーを得ることができます:
public class SpecificClass: BaseClass: where T : class { }
.
解決
私はそれを仕事に手に入れました、そして、私はそれが2つのことをすることからだと思います:
- MyMergeDLLは、コントロールする他のアセンブリを使用して構築されましたが、それらのアセンブリはターゲットx86に設定されていませんでした。X86をターゲットにしたアセンブリを再構築し、MyMergeDDLLを構成するアセンブリを再構築し、それらのアセンブルを再結合してMyMergeGeDLLの新しいコピーを作成しました。
- MyMergedDLLを使用しているコンソールアプリケーションは、デバッグモードではなくターゲットx86に設定されましたが、リリースモードはデバッグモードで動作しますが、リリースモードで
BadImageFormatException
を指定します。
最初のものが必要ないかもしれません。リリースモードでは、MyMergeDDLLのコンシューマをターゲットx86に必要なだけだと思います。私は私が使用していたIlmergeのバージョンを理解することはできませんので、Microsoftのサイトで見つけることができる最新のMSIでそれを再インストールしました。
他のヒント
使用しているIlMergeのバージョンを再確認しましたか?
私はaspnet_mergeの古い、不正確なバージョン(基本的には他のことの中でDLLの併合を行う)だから尋ねました。答えるときは他の人の質問に答えてください。そう