Auto lauch 32bit/64bit в зависимости от разрядности ОС?
Я использую Visual Studio 2008 для написания приложений. При развертывании приложения некоторые системы являются 32-разрядными, а другие - 64-разрядными. Поэтому я планирую доставить 32-разрядную /64-разрядную версию в установщик, а затем запустить соответствующую версию на основе разрядности ОС. Как реализовать последнее, то есть получить разрядность ОС и запустить соответствующую версию?
Позвольте мне прояснить ситуацию. Я уже разработал 32-битное и 64-битное приложение EXE с C++. Затем я хочу обнаружить разрядность Windows в C++(я не знаю.NET) и запустить соответствующую версию приложения.
Спасибо
2 ответа
Я бы порекомендовал поискать более мощный инструмент для упаковки MSI. Большинство профессиональных инструментов предлагают вам встроенный загрузчик, который предоставляет эту функцию одним щелчком мыши.
Проект установки VS полезен для базовой упаковки приложений, но никогда не предназначен для того, чтобы предложить вам полную мощность.
Это зависит от того, что вы подразумеваете под "запустить соответствующую версию". Это означает, что у вас уже написан код, который нужно выбрать, и в этом случае это вообще не вопрос установки - вам просто нужно найти разрядность ОС и затем установить соответствующий файл MSI (или сгенерированную VS настройку). EXE). Если это средство запуска C#, возможно, вы бы использовали Environment.Is64BitOperatingSystem.
В вашем вопросе не говорится, предоставляете ли вы код (сборки, COM Dll и т. Д.), Который будет использоваться клиентскими программами. Я упоминаю об этом, потому что ваша 32-битная установка будет установлена и запущена на 64-битных версиях ОС в 32-битной подсистеме. Предполагается, что 64-разрядная версия будет содержать только собственный 64-разрядный код.
Обратите внимание, что ваша 64-битная установка не будет установлена на 32-битную ОС в любом случае.