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 :

changer ma constring lors de deployement d'une application c#


Sujet :

C#

  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 36
    Par défaut changer ma constring lors de deployement d'une application c#
    bonjour
    j'ai à deployer une application c# avec une base de données sql server, j'ai fait le backup de ma base et dans mon projet d'installation j'ai fait un add files et j'ai attachée ma base.maintenat, je dois changer ma conString pour qu'elle permet de se conncter au local den'importe quel poste.

    note: je travaille avec dreamschield comme installer

    si vous avez une idée je serais reconnaissante

  2. #2
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    La chaine de connexion est stockée dans un fichier de configuration non ? (tonexe.exe.config). Car dans ce cas, il suffirait d'avoir un config pour le développement et d'utiliser un autre config pour la redistribution (qui lui contiendrais la chaine de connexion en production).

  3. #3
    Membre averti
    Inscrit en
    Février 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 36
    Par défaut
    bon, pour etre clair j'ai pas encore atteint ce stad,je sais meme pas comment creer ce fichier de config et pour quoi faire...

    pouvez vous m'expliquer un peu plus

  4. #4
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270

  5. #5
    Membre averti
    Inscrit en
    Février 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 36
    Par défaut
    bon merci vrmt pour votre aide mais j'ai dejà commencé par suivre un tutorial
    http://www.codeproject.com/KB/databa..._database.aspx

    et je suis bloqué à létape de création de class setupscript,j'ai pas trouvé un tel type de class.

    j'aimerais bien suivre avec cette solution si vous pouvez m'aider si non je n'ai qu'à adopter le votre

  6. #6
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Pour la création d'une classe Installer avec DreamShield

    http://dreamshield.developpez.com/do...tLinstallation

    Ensuite il te suffit (je pense) de reprendre le code du tutoriel pour compléter la fonction Install.

  7. #7
    Membre averti
    Inscrit en
    Février 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 36
    Par défaut
    bonjour

    depuis hier, je n'est cessé d'essayer de faire mon deployement mais c'était en vain,je trouve des problèmes concernant l'entrée de mes parametres comme le nom de ma base et le fichier de backup...

    je suis vrmt perdue

    pouvez vous m'aider svp

    j'ai mis en pièce jointes l'erreur qui m'apparait lors de l'exécution de l'installation avec dreamschield
    Fichiers attachés Fichiers attachés

  8. #8
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Avant qu'on m'accuse, ce n'est pas une erreur de DreamShield, c'est bien dans ta classe qu'il y a un problème

    Bon pour le problème, il y a partout un erreur indiquant que d:\base n'existe pas. Je pense que ta base de donnée (le fichier qui doit se trouver à d:\base) tu l'as rajouté à ton setup non ? Dans ce cas tu dois modifier la chaine de connexion (si tu en utilises, ou en tout cas le machin qui indique où se trouve la base) afin de prendre en compte le dossier qui contient ta ClassLibrary3 au moment de l'installation. Pour information, tu peux très facilement avoir le chemin dans lequel se trouve ClassLibrary3.dll au moment de l'installation via ceci :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    using System.Reflection;
    using System.IO;
    ...
    string dossier_actuel = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
     
    /* et donc pour un fichier data.db situé dans le dossier de l'installation */
    string db_path = Path.Combine(dossier_actuel, "data.db");

  9. #9
    Membre averti
    Inscrit en
    Février 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 36
    Par défaut
    ce code est à mettre ou extmt?

  10. #10
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Dans le code de ta classer Installer ... tu peux la montrer ?

  11. #11
    Membre averti
    Inscrit en
    Février 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 36
    Par défaut
    voici les trois classes de ma classLibrary.
    Fichiers attachés Fichiers attachés

  12. #12
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Context.Parameters ne contient rien normalement vu qu'il est appelé par InstallUtil directement.

    Défini toi même ce que valent paramètre.

  13. #13
    Membre averti
    Inscrit en
    Février 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 36
    Par défaut
    salut

    l'erreur reste toujours dans ce bloc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    string query = string.Format(
                        @"restore database {1} from disk='{2}{0}'",
                        //@"WITH MOVE '{1}_Data' TO '{2}\{1}_Data.MDF', " +
                        //@"MOVE '{1}_Log' TO '{2}\{1}_Log.LDF'",
                        m_backUpFilePath,
                        m_dbName,
                        m_datFilePath
                    );
    il m'affiche exctmt erreur vers le mot clé from...

  14. #14
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Et à ce moment ça vaut quoi m_backUpFilePath,
    m_dbName,
    m_datFilePath ?

  15. #15
    Membre averti
    Inscrit en
    Février 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 36
    Par défaut

    Je ne sais pas vraiment. Ce sont inutiles non?

  16. #16
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Oui non mais quelle est la valeur de ces variables ? car a priori c'est ça qui n'est pas bon ...

  17. #17
    Membre averti
    Inscrit en
    Février 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 36
    Par défaut
    c'est ce que j'arrive pas à comprendre vrmt,ben je veux pas perdre plus de temps là bas,j'ai besoin d'un code ou une idée de code qui m'aide à consulter ma base(se trouvant dans mon package d'install) lors de l'installation de mon appli et de la restaurer par la suite au niveau du serveur local

    avez vous une idée, lien...

    merci beaucoup pour votre assistance

  18. #18
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Sauf que je ne sais pas comment fonctionne ta base ... mais je pense à un truc comme ceci :
    Code c# : 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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    using System;
    using System.Threading;
     
    //using System.Windows.Forms;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Configuration.Install;
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Configuration.Install;
     
    using System.Reflection;
    using System.IO;
     
    namespace ClassLibrary3
    {
        [RunInstaller(true)]
        public partial class Installer1 : Installer
        {
            public Installer1()
            {
                InitializeComponent();
            }
     
            public override void Install(System.Collections.IDictionary stateSaver)
            {
                FrmLog log = null; ;
                try
                {
     
                    base.Install(stateSaver);
     
                    string currentDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
     
                    /* je suppose que le backup est dans le même dossier à l'installation que ClassLibrary3.dll */
                    string installedBackupFile = Path.Combine(currentDirectory,"backup.db");
     
                    log = new FrmLog(currentDirectory);
                    log.Show();
     
                    testbase db = new testbase();
     
                    // Database name 
                    db.DbName = "Nom de la base";
                    log.WriteLine("Database name: " + db.DbName);
     
                    // Backup file
                    db.BackUpFilePath = installedBackupFile;
                    log.WriteLine("Backup file: " + db.BackUpFilePath);
     
                    // Application file
                    db.AppConfigFileName = Path.Combine(currentDirectory,"Application.exe.config");
                    log.WriteLine("Config file: " + db.AppConfigFileName);
     
                    // Application file
                    db.AppPath = Context.Parameters["AppPath"];
                    log.WriteLine("AppPath: " + db.AppPath);
     
     
                    db.m_datFilePath = Path.Combine(currentDirectory,"Database.db");
                    log.WriteLine("DATFile: " + db.m_datFilePath);
     
                    db.Execute(log);
                }
                catch (Exception e)
                {
                    log.WriteLine("Data base creation failed:");
                    log.WriteLine(e.Message);
     
                    throw new ApplicationException(
                        "Database creation fault: \n" + e.Message);
                }
                finally
                {
                    Thread.Sleep(60 * 1000);
     
                    log.Close();
                    log.Release();
                }
            }
        }
    }

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

Discussions similaires

  1. Problème lors de fermeture d'une application
    Par midoENSI dans le forum MFC
    Réponses: 3
    Dernier message: 10/04/2007, 06h59
  2. Changer l'arrière plan des forms dans une application MDI
    Par zentaf dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 06/04/2007, 12h39
  3. Erreur lors du lancement d'une application
    Par mouloudéen dans le forum Access
    Réponses: 1
    Dernier message: 09/10/2006, 02h57
  4. Réponses: 6
    Dernier message: 06/07/2006, 18h44
  5. [EasyPHP] Probleme de deployement d'une application PHP sous linux
    Par stomerfull dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 16/01/2006, 15h39

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