特定のバイト配列からファイルを実行しようとしていますが、これはうまく機能します:
byte[] bytes = File.ReadAllBytes(@"C:\Location\program.exe");
MessageBox.Show(bytes.Length) // The same size for both the VS compiled and CodeDom compiled application
Assembly assembly = Assembly.Load(bytes); //Throws exception when compiled with CodeDOM
このコードは、Visual Studio で生成したアプリケーション内から正常にコンパイルおよび実行されます。
しかし、CodeDOM で生成したアプリケーションにこのコードを追加すると、BadImageException がスローされます。
どちらのバージョンも同じ byte[] の長さを出力するため、CodeDOM で生成されたアプリケーションはバイトを適切に読み取ります。
ターゲット フレームワークを .NET 2.0 から .NET 4.5 に変更してみました。ターゲット アーキテクチャを変更してみましたが、動作しませんでした。
この例外の原因は何ですか?