Свернуть 64-битные и 32-битные версии приложения в один двоичный файл?

У нас есть приложение, которое мы пытаемся развернуть на 64-битной и 32-битной платформах. Есть ли способ поместить обе скомпилированные версии кода в один и тот же двоичный файл, например, в толстые двоичные файлы Apple и NeXT?

В идеале мы могли бы поставлять один.exe, который решает, какую версию кода выполнять. Мы ориентируемся на Windows XP и более поздние версии.

3 ответа

Решение

Один из подходов, возможно, заключается в предоставлении загрузочного приложения, которое определяет архитектуру и выбирает подходящий исполняемый файл для запуска. Так что в основном ярлык или то, что у вас есть для вашего приложения, просто запускает загрузчик, который, в свою очередь, запускает соответствующее приложение. Это может быть немного сложнее, если ваше приложение является службой Windows.

Process Explorer (был sysinternals, теперь принадлежит Microsoft) делает это. Это 32-разрядное приложение, которое обнаруживает 64-разрядную среду, записывает другой двоичный файл и удаляет его при выходе. http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

Простейшим подходом было бы обработать это установщиком - он будет иметь две версии каждого двоичного файла и копировать необходимые версии в зависимости от того, какая системная разрядность находится на целевой машине.

Другие вопросы по тегам