.NET - сборка NGEN x86 - PullRequest
       24

.NET - сборка NGEN x86

1 голос
/ 15 января 2012

Это продолжение этого вопроса:

NGEN x86 против x64 с исполняемыми файлами .NET

Я знаю, что NGEN можно использовать с помощью настраиваемого действия настройки,но я использую Inno Setup, поэтому я должен сделать это вручную.

Вопрос: если моя сборка скомпилирована в режиме x86, мне всегда следует использовать версию ngen.exe для x86 или в зависимости от ОС (x86ngen.exe в x86 Windows и x64 ngen.exe в x64 Windows)?

Проблема в том, что я получаю следующие ошибки при установке NGEN:

Компиляция сборки C:\ Program Files \ MyApp \ MyApp.exe (CLR v4.0.30319) ... 15.01.2012 15:05:28 [2432]: 1> Ошибка компиляции C: \ Program Files \ MyApp \ MyApp.exe: эта версияиз несовместим с версией Windows, которую вы используете.Проверьте системную информацию вашего компьютера, чтобы узнать, нужна ли вам версия программы для x86 (32-разрядная) или x64 (64-разрядная), а затем обратитесь к издателю программного обеспечения.(Исключение из HRESULT: 0x800700D8)

В идеале я хотел бы скомпилировать в нативный код основную сборку (x86) и все ее зависимости (смешанные сборки x86 и AnyCPU).

Пожалуйста, порекомендуйте.

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

У меня были похожие проблемы с NSIS на IronScheme.

  1. В установщике определите время выполнения (x86 / x64)
  2. Затем определите версию платформы (2 или 4).
  3. В зависимости от вышеуказанного 2, запустите соответствующий исполняемый файл NGEN

Ссылка на скрипт NSIS: https://github.com/leppie/IronScheme/blob/master/IronScheme/ironscheme.nsi

0 голосов
/ 03 апреля 2012

У меня была такая же проблема, когда я пытался скомпилировать MyApp.exe с NGEN в режиме AnyCPU.,,Затем я переключил режим x64, и он работал

...