2017-10-03 4 views
-1

Je suis nouveau à l'utilisation de jenkins.Je travaille sur le projet C# et en utilisant jenkins pour la construction et la libération continue. J'ai terminé de créer des builds pour mon projet et j'ai obtenu les fichiers .exe et dll. Mais j'ai besoin de le reconditionner (créer un msi) avant de le déployer sur des serveurs. Donc, n'importe qui peut donner une information par étapes pour rePackaging et outil à utiliser avec jenkins pour l'emballage. Je veux automatiser ce processus dans jenkins CI ET CD.Jenkins Empaquetage d'un exe et dll à msi

Répondre

0

Le reconditionnement implique que vous ayez un programme d'installation tiers que vous souhaitez désosser dans un MSI nouveau/meilleur. Vous êtes juste emballage pas remballage.

Ceci est une question en deux parties:

  1. Auteur d'un MSI. Je recommande d'utiliser WiX et IsWiX en commençant par ce tutorial.

  2. Construisez-le en utilisant Jenkins. WiX prend en charge MSBuild et Jenkins a un MSBuild PlugIn. Standard, sauf que le fichier .WIXPROJ créé par les modèles IsWiX s'attend à ce que vous transmettiez MSBuild Property MSIProductVersion. Le format correct pour cette propriété est 0-255.0-255.0-65535. Vous pouvez virer sur un quatrième champ si vous le souhaitez mais cela sera ignoré. Les modèles de projet IsWiX sont configurés par défaut pour les mises à niveau majeures, donc assurez-vous que l'un de ces trois champs est incrémentiel avec chaque version. (1.0.0, 1.0.1, 1.1.0, 1.1.1, 2.0.0)

+0

Par ignoré, je veux dire ignoré par Windows Installer en termes de traitement MajorUpgrade. Il le fera dans la table de propriété du MSI et montrera dans des programmes et des dispositifs. –

1

Il s'agit plus d'un problème d'emballage que d'un problème Jenkins.

Jetez un coup d'œil à WIX Toolset. Je l'ai utilisé avec succès dans le passé avec divers projets. L'intégration avec Jenkins devrait être facile. Après avoir installé le jeu d'outils WIX, ajoutez un nouveau projet WIX à votre solution Visual Studio. Il existe deux options dont je suis conscient:

  1. Après avoir installé le jeu d'outils WIX. Une fois configuré, validez le nouveau projet dans votre référentiel de code source. Ensuite, les développeurs peuvent créer des packages .MSI sur leur propre poste de travail de développement. En supposant que vous utilisez MSBuild dans Jenkins pour construire votre projet C#, le nouveau projet va "juste construire" et créer un paquet .MSI (n'oubliez pas d'installer WIX sur votre serveur de build Jenkins). C'est l'option recommandée.
  2. Utilisez les utilitaires de ligne de commande de WIX pour générer MSI dans une étape de traitement par lots Jenkins. C'est plus lourd et difficile à déboguer.
+0

J'ai entendu que wix est compliqué et non recommandé pour un débutant. Pouvez-vous recommander d'autres outils qui peuvent être intégrés avec jenkins et utilisés pour l'emballage? –

+1

WIX est en effet compliqué pour un débutant. Mon premier projet d'installation était le "Projet d'installation" de Visual Studio (maintenant obsolète). Bien que ce fût plus facile, j'en suis arrivé au point où je me suis limité au bout d'un moment et je suis passé à WIX. Ce que j'ai appris est que Windows Installer et les installateurs en général sont complexes, ce n'est pas WIX qui le rend complexe. –

+0

Correct. J'ai un outil FOSS appelé IsWiX qui a des modèles de projet et des concepteurs graphiques pour aider avec la majorité de la création WiX. C'est un accélérateur de solution qui vous aide à faire les choses de base rapidement au lieu de vous heurter la tête contre le mur. Mais vous avez raison, l'installation est compliquée et IsWiX n'est pas conçu pour remplacer WiX et MSI. –