IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Comment paramètrer service.exe.config lors du setup


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 4
    Par défaut Comment paramètrer service.exe.config lors du setup
    Salut,
    J'ai un service windows qui utilise des services web pour remonter les données à la base, je voulais lors de l'install de mon service windows j'entre l'adresse du serveur IIS et le nom du site, puis ces information seront inserrer dans la référence de mon web service dans le fichier service.exe.config
    Je sais faire ça pour le paramètrage d'un setup pour les site web(web.config), par contre ça marche pas pour le service windows
    ********************
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    /// Code pour un site web
       base.Install(stateSaver); 
        // On commence par récupérer les variables entrées pas l'utilisateur. 
        // Notez qu'on utilise les variables déclarées dans les actions personnalisées. 
        String txtMyBaseSource= this.Context.Parameters["mybasesrce"];
        String txtMYBase = this.Context.Parameters["mybase"]; 
        String txtUser = this.Context.Parameters["user"];
        String txtPass = this.Context.Parameters["pass"];
        // Nous allons récupérer l'assembly courrante afin de récupérer le chemin du fichier Web.config. 
        Assembly Asm = Assembly.GetExecutingAssembly(); 
        String chemin; 
        chemin = Asm.Location.Substring(0, Asm.Location.Length - Asm.GetName().Name.Length - 8)+"\\Web.config"; 
        // Le FileInfo va nous permettre de voir que le fichier Web.config existe bel et bien. 
        FileInfo FileInfo1 = new FileInfo(chemin); 
        if (!FileInfo1.Exists) 
        { 
            throw new InstallException("Impossible de trouver le fichier de configuration."); 
        } 
        // Nous allons charger notre web.config dans un objet XmlDocument afin de le parcourir 
        //et de pouvoir le modifier par la suite. 
        XmlDocument XmlDocument1 = new XmlDocument(); 
        XmlDocument1.Load(FileInfo1.FullName); 
    *************************************
    Help please!

  2. #2
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Salut.

    Tu peux faire comme ça :
    • tu ajoutes une Installer Class à ton service
    • dans cette classe, tu surcharges la méthode Install
    • dans cette méthode, tu récupères les variables définies dans ton Setup Project.
    • puis tu modifies ton fichier de conf à chaud

    Un petit exemple avec modification d'une clé <add key="install.folder" value="XXX" /> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    public override void Install(IDictionary stateSaver) {
    	base.Install(stateSaver);
     
    	try {
    		// La variable "assemblypath" est définie automatiquement dans le setup project
    		string installFolder = Context.Parameters["assemblypath"];
     
    		// Modifying the App.config file
    		XmlDocument xmlDoc = new XmlDocument();
    		xmlDoc.Load(Path.Combine(installFolder, "MyExe.exe.config"));
     
    		// Modifying XML nodes 
    		XmlNode pathNode = xmlDoc.SelectSingleNode("//appSettings/add[@key='install.folder']");
    		pathNode.Attributes["value"].InnerText = installFolder;
     
    		// Validate the changes
    		xmlDoc.Save(Path.Combine(installFolder, "MyExe.exe.config"));
    	}
    	catch (Exception exception) {
    		// Special exception that abort the installation process
    		throw new InstallException(exception.Message);
    	}
    }
    Normalement, c'est OK. Bon courage

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 4
    Par défaut Salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Asm.GetName().Name.Length - 5) + @"\ServiceMonitor.exe.config";
                //InsertIntoFile("test.log", "Debut lecture chemin"+chemin);
                FileInfo FileInfo1 = new FileInfo(chemin);
    C'est simple changer 8 par 5 et çava marcher!
    NB:Les services windows tourne sous le compte system c'est pas pareil pour les autres application
    Merci eusebe19 mais dsl j'ai pas eu le temps pour tester votre code

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/03/2014, 05h39
  2. [JAXB] Comment paramétrer la naviguabilité lors de la génération ?
    Par baptiste.chanourdie dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 22/12/2011, 17h19
  3. Réponses: 3
    Dernier message: 20/08/2008, 14h22
  4. Réponses: 5
    Dernier message: 07/03/2008, 09h17
  5. [VB6] [Install] Que se passe-t-il lors du setup?
    Par petit scarabée dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 28/10/2002, 08h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo