VS Installer для файлов x32 и x64 - PullRequest
       56

VS Installer для файлов x32 и x64

1 голос
/ 01 октября 2019

У меня есть две версии программы, встроенные в VS2010 (.net): для x86 и x64 Windows.

Затем я пытаюсь поместить оба варианта в один установщик так, чтобы он определил (используя условие VersionNT64 или диалог пользователя). ) на какой системе он запущен, и в зависимости от этого он должен установить соответствующие файлы. Установщик настроен на целевую платформу x86, поэтому он может быть запущен в системе x86.

Проблема в том, что VS выдает ошибку, когда я пытаюсь поместить файл x64 в установщик x86: «ОШИБКА: модуль« Microsoft_VC100_CRT_x64.msm », предназначенный для« x64 », не может быть добавлен в пакет, ориентированный на« x86 »" (Хотя файл x86 в установщике x64 в порядке)

Есть ли способ обойти эту ошибку? Можно ли поместить файл x64 в установщик x86? Или единственный способ - два установщика для каждой разрядности системы?

1 Ответ

0 голосов
/ 01 октября 2019

Короткий ответ : если вам не нужно ориентироваться на машины REAL x86 (как на реальном 32-битном оборудовании, в отличие от более новых 64-битных машин с x86)подсистемы), тогда вы можете просто установить свой пакет 64-битным и включить компоненты x86. Я думаю, что это должно работать.


Техническое ограничение : Пакет 64-bit не может быть установлен на реальномx86, следовательно, пакет, помеченный как x86, не может содержать 64-bit компонентов (или не может быть установлен на целевой платформе). A x64 MSI может установить как компоненты x86 (32-разрядные), так и x64 компоненты (64-разрядные) - они должны предназначаться для разныхпути установки. Вот некоторые подробности: Для разных архитектур процессоров требуются разные пакеты (Хит Стюарт из Microsoft).

Программа запуска Setup.exe : IПредположим, что вы можете доставить один setup.exe, содержащий два разных файла MSI: один для x86 и один для x64 и установить необходимый в зависимости отна целевой системе? setup.exe должен быть x86, чтобы иметь возможность запуска на x86 машинах. На данный момент я не делаю этого, большинство машин являются 64-битными, поэтому я использую либо x86 (устанавливается на любой компьютер), либо x64 (устанавливается на любой 64-битный компьютер).

...