2012-01-15 17 views
1

をコンパイルこれは、この質問へのフォローです:.NET - NGENのx86アセンブリ

NGEN x86 vs x64 with .NET executables

私はそれがカスタムセットアップアクションを使用してNGENすることが可能だということを知っているが、私はInno Setupのを使用するので、私がする必要がありますそれを手動で行います。

質問:私のアセンブリがx86モードでコンパイルされている場合は、常にx86版のngen.exeを使用するか、OSによって異なりますか?(x86 Windowsではx86 ngen.exe、x64ではx64 ngen.exe)

問題は、私はNGENのインストールで、次のエラーを取得していますということです。

コンパイルアセンブリC:\プログラムファイル\ MyAppに\ MYAPP.EXE(CLRのv4.0.30319) ... 01/C:\ Program Files \ MyApp \ MyApp.exeのコンパイルエラー:このバージョンは実行中のWindowsの バージョンと互換性がありません。お使いのコンピュータのシステム の情報を確認して、x86(32ビット)またはx64(64ビット) のバージョンが必要かどうかを確認し、ソフトウェアの発行元に問い合わせてください。 (HRESULTからの例外:0x800700D8)

理想的には、私は、ネイティブコードに本体(のx86)とそのすべての依存関係を(混合x86とAnyCPUビルド)コンパイルしたいです。

お知らせください。

答えて

0

AnyCPUモードでNGENMyApp.exeをコンパイルしようとしたとき、同じ問題が発生しました。 。 。 次に、x64モードを切り替えて動作させました。

1

IronSchemeでNSISと同様の問題がありました。インストーラの

  1. フレームワークバージョン(2または4)を決定そしてランタイム(のx86/x64)の
  2. を決定します。
  3. 上記2に応じて、

リンクNSISスクリプトに適切なNGEN実行ファイルを実行します。​​