API pour créer des programmes d’installation sous Windows

Il existe de nombreux outils pour créer des programmes d’installation sous Windows (InstallShield, InnoSetup, NSIS, pour n’en citer que quelques-uns). Tous les outils que j’ai vu tombent dans l’une ou l’autre de ces catégories

  • Pointer et cliquer. Une interface graphique agréable pour créer l’installateur, mais le fichier de définition / projet de l’installateur ne peut pas être modifié manuellement.
  • Textfile: No (officiel) GUI. Le programme d’installation est compilé à partir d’une définition dans un fichier texte qui est modifié manuellement.

Les programmes d’installation que je construis sont tous définis à l’aide d’un DSL (représenté sous la forme de fichiers YAML). Il est donc inutile d’utiliser une interface graphique, et créer un fichier texte est lourd, mais faisable.

Ce que je voudrais vraiment, c’est un outil qui expose une API (complète), grâce à laquelle je peux contrôler la création de l’installateur. Y a-t-il de tels outils là-bas?

Edit: J’adorerais entendre parler d’outils non basés sur MSI. MSI n’est pas une exigence (plutôt l’inverse)

Wix 3.0 beta contient le support .NET à cet effet. Je ne sais pas comment ça marche mais ça inclut de la documentation. C’est un cadre de types pour manipuler le processus de création de l’installation et toutes ces qualités, donc je ne pense pas que vous ayez besoin d’écrire une ligne XML XML si vous ne le souhaitez pas.

WiX est un excellent outil, mais vous devrez faire beaucoup de codage direct pour que les choses se passent bien. Heureusement, la documentation est très bonne et il existe plusieurs outils graphiques, tels que WixEdit sur SourceForge, pour vous aider dans le processus.

Eh bien, il existe l’API Windows Installer que vous pouvez utiliser pour créer des fichiers MSI directement, mais je pense que vous feriez mieux d’utiliser WiX.

Le “codage direct” sera beaucoup moins important que de traiter directement avec l’API Windows Installer, je suppose que cela va probablement “trop ​​bas” pour ce dont vous avez besoin. En fonction de ce que vous souhaitez faire, vous pouvez utiliser WiX pour générer un fichier MSI, puis le modifier ultérieurement à l’aide de l’API.

Qu’est-ce qui ne va pas avec la génération de XML? Cela va vraiment être votre option la plus simple … vous n’aurez pas besoin de l’éditer manuellement, écrivez simplement votre propre code pour générer le code XML requirejs à partir de vos fichiers DSL et quelques modèles.