0

特定のバイト配列からファイルを実行しようとしていますが、これはうまく機能します:

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 に変更してみました。ターゲット アーキテクチャを変更してみましたが、動作しませんでした。

この例外の原因は何ですか?

4

1 に答える 1