0

J'essaie de récupérer des données à partir d'une zone de texte dans le programme d'installation de projet Visual Studio, mais je continue à échouer. Je n'ai aucune idée de la façon de récupérer des données, disons le champ EDITA2 et il semble que l'Internet n'a pas de réponses jusqu'à présent.C# Visual Studio Project Installer récupère des données à partir de la zone de texte

Le projet dont je parle est un service Windows que vous installez avec le programme d'installation mentionné. Dans le programme d'installation, vous pouvez configurer le service. Je veux obtenir des données comme les adresses IP des serveurs et les noms d'ordinateurs et je veux utiliser ces données plus tard dans le service en cours d'exécution. Parler de service, est-il possible de démarrer automatiquement le service après l'installation? Pour résumer, je veux écrire des données du programme d'installation dans un fichier texte et démarrer un fichier de commandes après l'achèvement du processus d'installation. Pouvez-vous m'aider s'il vous plaît?

Merci d'avance pour une réponse.

+0

jetez un oeil à cette réponse ici à l'appui de la réponse de Lukas et mon commentaire ci-dessous. https: // stackoverflow.com/questions/24484478/run-execommand-in-customaction-as-administrator-mode-in-wix-installer –

Répondre

1

Je pense que vous êtes à la recherche d'actions personnalisées

https://msdn.microsoft.com/library/d9k65z2d(v=vs.100).aspx

https://msdn.microsoft.com/en-us/library/9cdb5eda(v=vs.100).aspx

Pour configurer le StartType d'un service dont vous avez besoin d'un ServiceInstaller

Peut-être que cela aide http://www.docstorus.com/viewer.aspx?code=7c7ccc28-6503-4779-877e-f350faab6741

+0

Vous êtes sur la bonne voie avec ceci et l'OP devra créer une action personnalisée. J'ai fait cela il ya quelques mois avec Wix Installers http://wixtoolset.org/ et c'est relativement simple à réaliser. –

0

C'est la documentatio n pour la boîte de dialogue de l'interface utilisateur Encadrés:

https://msdn.microsoft.com/en-us/library/e04k6f53(v=vs.100).aspx

L'identifiant EDITA1 (et d'autres) est un nom de propriété que vous pouvez utiliser plus tard dans (par exemple) des actions personnalisées. Sans savoir exactement quel type d'action personnalisée vous pourriez penser, il est difficile de dire comment vous l'utilisez. En général, en le spécifiant comme paramètre de l'action personnalisée en tant que [EDITA1], il sera résolu en sa valeur réelle. Mais si vous souhaitez simplement stocker les valeurs dans le registre, créez un élément de registre avec la valeur [EDITA1]. Pour démarrer le service dans les installations Visual Studio qui installent des services avec des classes d'installation, vous devez remplacer la méthode Install en appelant base.Install(), puis en ajoutant du code pour démarrer le service. De même, lors de la désinstallation ou de la mise à niveau, vous pouvez remplacer la méthode de désinstallation et arrêter le service avant d'appeler base.Uninstall().

Ces postes ont des exemples de TextBoxes:

Overriding "Textboxes" dialog fields from the command line in MSI installer (Visual Studio 2010 Web Setup)

Setup Project: user enters a value then store it in a text file or database

configurations Visual Studio ne sont pas très utiles avec les services et l'interface utilisateur. Il n'y a aucun moyen de valider ce que l'utilisateur saisit au moment où il est entré - si vous le validez avec une action personnalisée, il sera à la fin de l'installation et l'installation entière échouera et reviendra. Windows Installer prend en charge les services de démarrage/arrêt/suppression/installation, mais les configurations VS ne l'utilisent pas. Si c'est quelque chose que vous faites régulièrement, il pourrait être utile de considérer un autre outil, et cela pourrait avoir une courbe d'apprentissage, mais le MSI résultant sera plus fiable et plus facile à utiliser.

+0

Salut et merci pour la réponse et désolé pour mon retard! Je souhaite écrire des données que l'utilisateur place dans les zones EDIT dans un fichier de configuration (.txt). Comment puis-je faire ceci? – Speedbird

+0

Pouvez-vous s'il vous plaît donner un petit exemple de code afin de me montrer comment je gère cela dans mon code C#? Je ne peux rien trouver à ce sujet excepté ceci de votre part mais cela ne m'aide pas: ils ne sont pas gardés n'importe où. Si vous voulez les sauvegarder, vous devez le faire vous-même. Il est simple de créer une entrée de registre dans l'EDI du projet d'installation où, dans la partie valeur, vous mettez le nom de la propriété entre crochets, comme [EDITA1] – Speedbird