web-dev-qa-db-fra.com

Comment créer un projet InstallShield LE pour installer un service Windows?

J'ai téléchargé Visual Studio 2012 hier lors de la publication sur MSDN. J'ai remarqué que quelques types de projets que nous avions en 2010 ont disparu ou sont différents. La plus grande différence pour moi actuellement est la suppression du projet Windows Installer. Nous sommes maintenant obligés d'utiliser InstallShield LE (Limited Edition). Le problème ici est que j’écris une tonne de services Windows et que je ne vois pas comment installer InstallShield LE. Il semble que nous (ma société) devrons investir dans des licences pour l'édition professionnelle.

Quelqu'un a-t-il trouvé un moyen d'installer des services dans InstallShield LE? Lorsque vous utilisez le projet Windows Installer, vous définissez simplement les actions personnalisées.

104
fizch

Pour Visual Studio 2012 et InstallShield LE, procédez comme suit:

  • Exécutez l’assistant de projet InstallShield et ajoutez la sortie principale de votre service à la section Fichiers de l’application.
  • Une fois que vous avez terminé avec l’assistant de projet, double-cliquez sur l’item "Fichiers" de la deuxième étape du projet d’installation.

Files section

  • Cliquez avec le bouton droit sur la sortie principale de votre service, puis accédez aux propriétés.
  • Cliquez sur l'onglet "Paramètres COM et .NET" et cochez la case "Classe d'installation". enter image description here
  • Cliquez sur OK

Maintenant, une fois que vous avez créé et exécuté votre installation, votre service apparaîtra dans le composant logiciel enfichable Windows Services.

Notez que cela suppose que vous avez ajouté un "programme d'installation" à votre projet de service (cliquez avec le bouton droit de la souris sur la feuille de conception du service, puis cliquez sur "Ajouter un programme d'installation"). Je peux confirmer ce travail sur Windows 8 avec Visual Studio 2012/InstallShield LE.

161
Mongo

J'ai récemment installé VS 2012 avec Install Shield LE. Au début, je continuais à obtenir une erreur de serveur interne ISEXP -5036 après une construction (c'était après la configuration d'un projet ISLE et l'exécution de l'Assistant de projet Install Shield). Finalement, j'ai découvert qu'il essayait de créer le fichier MSI dans le type de support DVD-5, où il échouait. Pour une raison quelconque, recréer la solution à partir de zéro en quelque sorte reconnaît de ne construire que les types de support CD_ROM et SingleImage qui fonctionnent.

Quoi qu'il en soit, pour rectifier l'erreur 5036, cliquez sur l'onglet Construction dans VS 2012 (menu supérieur), sélectionnez le gestionnaire de configuration et vous devriez voir que votre fichier d'installation IS est sélectionné dans la configuration du DVD-5. Modifier ceci sur CD_ROM et cliquez sur fermer.Une fois que vous construisez/reconstruisez il se terminera sans erreur IS 5036 erreur.

enter image description here

24
Jonty

Lors de l'utilisation de la case à cocher de la classe du programme d'installation peut fonctionner dans certains cas, vous pouvez rencontrer l'erreur suivante:

Erreur 1001.Le service spécifié existe déjà

Voici un extrait de cette lien sur la façon de résoudre ce problème:

Pour Erreur: Erreur 1001.Le service spécifié existe déjà

Cette erreur se produira si le composant installant un service .NET n'est pas configuré correctement avec "Classe d'installation .NET" défini sur Oui. La méthode pour installer un service .NET consiste à utiliser la vue Component\Advanced Settings\Services, et non le paramètre ".NET Installer Class". La définition dans la vue Composant\Paramètres avancés\Services crée des entrées dans les tables ServiceControl et ServiceInstall de Windows Installer. Ces entrées sont utilisées par l'action "InstallerServices" de Windows Installer pour installer le service.

6
ElHaix

Si votre projet est .NET, essayez alors vous pouvez utiliser la classe ServiceProcessInstaller avec InstallShield LE.

Pour que cela fonctionne avec InstallShield, vous devez accéder à l’arborescence "fichiers" d’InstallShield et cliquer avec le bouton droit de la souris sur votre fichier. Cochez ensuite la case "Classe d'installation" dans l'onglet "Paramètres COM et .NET".

Je l'ai obtenu au travail, mais j'ai eu des problèmes sur certains systèmes d'exploitation tels que Windows 2008R2. Votre kilométrage peut varier.

Voici un exemple: http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C

4
jm.

J'ai eu toutes sortes de problèmes avec ça.

Comme suit.

  1. Il faut du temps pour télécharger InstallShield
  2. le processus d'inscription est une douleur.
  3. les options de configuration sont déroutantes et trop complexes.
  4. la solution acceptée sur ce fil est un hack et cela ne fonctionne pas toujours - voir 1001 dans la documentation - vous devez essentiellement passer par le paywall pour obtenir les bonnes options de configuration pour installer un service Windows.

La solution pour moi, comme mentionné ailleurs - était d'abandonner InstallShield

enter image description here

Très facile à partir de là.

Edit: Update - Installez la dernière version à partir d’ici https://wix.codeplex.com/releases/view/115492 pour vs 2013/2015

4
Paul Hutchinson

Les projets d'installation de Visual Studio sont de retour dans VS 2013 en tant qu'extension Visual Studio.

https://visualstudiogallery.msdn.Microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d

Veuillez mettre à jour votre solution et vos projets avec VS 2013. Si vous êtes toujours dans VS 2010, il est probablement préférable de passer directement à VS 2013.

D'après mon expérience, c'est très bizarre, mais une fois que vous avez compris les astuces, il est plus facile à utiliser. Cependant, je pense que l'édition limitée est un moyen utilisé par Microsoft et Flexera pour vendre l'édition complète. En d’autres termes, nous versons d’abord beaucoup d’argent à Microsoft pour Visual Studio, puis à leur partenaire (en cas de crime), davantage pour Opensheild. Mauvaise stratégie qui n'a pas fonctionné puisqu'ils ont dû ramener les projets d'installation dans VS 2013.

3
user4347361

J'utilise VS2012 et Installshield LE Spring Edition. Je n'ai pas eu besoin d'utiliser Wix.

Si vous rencontrez l'erreur "Impossible de créer _isconfig.xml pour l'utiliser avec InstallUtilLib.dll", créez un dossier portant le même nom que votre projet d'installation et à l'intérieur du dossier du projet d'installation.

Crédits à http://community.flexerasoftware.com/showthread.php?165929-Could-not-create-_isconfig-xml-for-use-with-InstallUtilLib-dll

2
Telemat

Je viens d'avoir quelques problèmes pour trouver où ajouter un programme d'installation, comme indiqué dans la réponse. Alors voici comment.

Double-cliquez sur votre classe de service dans votre service Windows. Projet Un écran vide avec le texte "Pour ajouter des composants à votre classe, faites-les glisser de la Boîte à outils et utilisez la fenêtre Propriétés pour définir leurs propriétés ..." Cliquez avec le bouton droit n'importe où, sauf sur les liens. et sélectionnez "Ajouter un installateur"

à plus

2
Ricker Silva

J'ai écrit sur ce sujet:

Augmenter InstallShield à l’aide de Windows Installer XML - Services Windows

En gros, vous créez un module de fusion à l'aide de WiX pour encapsuler le service, puis vous l'ajoutez à votre projet installshield. (Assurez-vous de vous associer au répertoire INSTALLDIR pour vous assurer que votre fichier se trouve là où vous le souhaitez). Construire et tester sur une machine virtuelle. Part de gâteau.

2
Christopher Painter

N'oubliez pas que toutes les explications ci-dessus ne vous aideront pas si vous envisagez de créer ultérieurement une mise à niveau de cette configuration. InstallShiled LE ne peut pas arrêter le service en cours lorsque vous effectuez une mise à niveau. Vous ne pouvez pas le faire non plus à partir de Windows Service Installer -> événement BeforeInstall.

0
Donn

Je voulais mettre ça ici;

Sur VS 2015, en faisant cela, j'ai rencontré à plusieurs reprises l'erreur 1001 lors de l'installation.

La réponse sur cette page a expliqué que sur les versions les plus récentes (aucune version postérieure à 2012) , vous devez apparemment quitter explicitement le Classe d'installation option décochée , puis ajoutez votre service Windows dans la section Services de l'étape 3 du projet d'installation:

Erreur 1001 lors de l'installation du service Windows personnalisé

0
schizoid04