API для создания установщиков в Windows - PullRequest
6 голосов
/ 03 октября 2008

Существует множество инструментов для создания установщиков в Windows (InstallShield, InnoSetup, NSIS, и многие другие). Все инструменты, которые я видел, попадают в одну или обе эти категории

  • Point и щелкнул. Хороший графический интерфейс для создания установщика, но определение установщика / файл проекта невозможно редактировать вручную.
  • Текстовый файл: Нет (официальный) графический интерфейс. Установщик компилируется из определения в текстовом файле, который редактируется вручную.

Все инсталляторы, которые я создаю, определены с использованием DSL (представленного в виде файлов YAML), поэтому использование графического интерфейса исключено, а создание текстового файла является громоздким, хотя и выполнимым.

Что мне действительно нужно, так это инструмент, который предоставляет (полный) API, с помощью которого я могу контролировать создание установщика. Есть ли такие инструменты там?

Редактировать: Мне бы очень хотелось услышать об инструментах, не основанных на MSI. MSI не является обязательным требованием (скорее наоборот ...)

Ответы [ 3 ]

6 голосов
/ 03 октября 2008

Wix 3.0 beta имеет поддержку .NET для этой цели. Я не знаю, насколько хорошо это работает, но это включает в себя документацию. Это структура типов для управления процессом создания установки и всем этим, поэтому я не думаю, что вам даже нужно написать строку WiX XML, если вы этого не хотите.

1 голос
/ 03 октября 2008

WiX - отличный инструмент, но вам придется много писать напрямую, чтобы все произошло. К счастью, документация довольно хорошая, и есть несколько инструментов с графическим интерфейсом, таких как WixEdit на SourceForge, чтобы помочь в этом процессе.

0 голосов
/ 03 октября 2008

Что ж, есть API установщика Windows, который вы можете использовать для непосредственного создания файлов MSI, однако я думаю, что вам лучше использовать WiX.

«Прямое кодирование» будет намного меньше, чем работа с API установщика Windows напрямую, я полагаю, что это слишком низкий уровень для того, что вам нужно. В зависимости от того, что вы хотите сделать, вы можете использовать WiX для создания MSI, а затем настроить его с помощью API.

Что не так с генерацией XML? Это действительно будет ваш самый простой вариант ... вам не нужно будет редактировать его вручную, просто напишите свой собственный код, чтобы сгенерировать необходимый XML из ваших файлов DSL и нескольких шаблонов.

...