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.
Pour Visual Studio 2012 et InstallShield LE, procédez comme suit:
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.
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.
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.
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
J'ai eu toutes sortes de problèmes avec ça.
Comme suit.
La solution pour moi, comme mentionné ailleurs - était d'abandonner InstallShield
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
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.
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.
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
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.
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.
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é