Установите другой вариант программы в зависимости от условия - PullRequest
1 голос
/ 13 мая 2011

Я создаю пакет MSI, который должен установить одну из нескольких версий определенного исполняемого файла, в зависимости от версии Windows (т. Е. Тот, который использует новые функции в Windows Vista, и тот, который выполняет саму работу).

Имя исполняемого файла должно быть одинаковым, какая бы версия не была установлена ​​(иначе это будет тривиально, нет?).

Как правильно добиться этого с помощью установщика Windows?

1 Ответ

2 голосов
/ 13 мая 2011

Абсолютно лучший способ сделать это - сделать так, чтобы файл EXE мог определять свою собственную операционную среду и выбирать другой метод, в зависимости от того, что предоставляет ОС, так что есть только один двоичный файл для работы.

Есть много причин для этого:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...