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

Windows Forms Discussion :

[C#[SQL SERVER 2005 Express] projet d'installation complet


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 134
    Points : 75
    Points
    75
    Par défaut [C#[SQL SERVER 2005 Express] projet d'installation complet
    Bonjour,
    Je développe un logiciel de gestion avec Visual C# Express associé à une base de données MS Sql Server 2005 Express.
    Est-il possible de créer une installation qui installe le logiciel, Sql Server, le Framework .Net, etc à la fois ? si oui comment doit-on s'y prendre ? quel logiciel utilisez-vous ?(NIS de nullsoft, Dreamshield, si possible OpenSource).

    Merci

  2. #2
    Expert éminent
    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
    Points : 8 344
    Points
    8 344
    Par défaut
    Si tu crées un plugin qui lance une installation silencieuse de Sql Server 2005 après l'installation, DreamShield peut le faire ( vu que .Net Framework par défaut il va l'installer ) ( si t'as besoin d'aide, je suis là )

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 134
    Points : 75
    Points
    75
    Par défaut
    ça m'a l'air d'être une très bonne idée de faire un plugin... mais j'en ai jamais fait de ma vie lol. si tu peux au moins me dire comment je dois m'y prendre ça sera sympathique. Merci

  4. #4
    Expert éminent
    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
    Points : 8 344
    Points
    8 344
    Par défaut
    regarde dans le menu aide -> tutoriels le fichier "Pages personnalisées pour l'assistant d'installation" sauf que, tu crées un nouveau projet à partir de SampleInstallerPage et tu remplaces le code qui crée la page perso ( le fichier SampleInstallPage_Plugin.cs ) par celui ci.
    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
    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
     
    [Extention(BaseInstallerPlugin.InstallerPluginGuid,
            "{061EBBD7-C2D6-4d11-A057-66F877D31301}")]
        public class MSSQLInstaller_Plugin : BaseInstallerPlugin
        {
            public override void AfterExtentionLoad(PackageInstallerProvider provider)
            {
                base.AfterExtentionLoad(provider);
     
                MSSQLInstaller_Handler handler = new MSSQLInstaller_Handler(provider);
            }
        }
     
        public class MSSQLInstaller_Handler : BaseInstallerEventHandlers
        {
            PackageInstallerProvider provider;
     
            public virtual PackageInstallerProvider Provider
            {
                get { return provider; }
            }
     
            public MSSQLInstaller_Handler(PackageInstallerProvider provider)
            {
                this.provider = provider;
                if (provider == null)
                    throw new ArgumentNullException("provider");
     
                provider.InstallerEventsObjects.Handlers.Add(this);
            }
     
            SchemaMode mode = SchemaMode.Custom;
     
            public virtual SchemaMode Mode
            {
                get { return mode; }
            }
     
            public override void OnExtendedEvent(InstallerHandler_ExtendedEvent eventCode, object[] parameters)
            {
                base.OnExtendedEvent(eventCode, parameters);
     
                switch (eventCode)
                {
                    case InstallerHandler_ExtendedEvent.OnBeginWizardCreation:
                        {
                            /* parameters[0] : form */
                            mode = (SchemaMode)parameters[1];
                            break;
                        }
                }
            }
     
            public override void OnAfterExecuteSchemas(ISequencer sequencer, ISequencerCallBack callBack)
            {
                base.OnAfterExecuteSchemas(sequencer, callBack);
                if (mode == SchemaMode.Install)
                {
                    /*
                     * il faudrait peut être vérifié que MS SQLServer n'est pas déjà
                     * installé ... ^_^
                     */
     
                    callBack.OnEnterStep("Installation de SQL Server", "..", 0, 1);
                    try
                    {
                        System.Diagnostics.ProcessStartInfo msSqlSetup = new System.Diagnostics.ProcessStartInfo();
                        msSqlSetup.FileName = Provider.TargetDir + Path.DirectorySeparatorChar + "SQLServerSetup.exe";
                        msSqlSetup.Arguments = "/silent"; //??? je sais pas là
                        System.Diagnostics.Process setup = System.Diagnostics.Process.Start(msSqlSetup);
                        setup.WaitForExit();
                    }
                    catch (Exception ex)
                    {
                        System.Windows.Forms.MessageBox.Show(ex.ToString());
                    }
                    callBack.OnLeaveStep(1, 1);
     
                }
            }
        }
    Tu peut aussi, tout simplement créer un nouveau projet de dll qui aura ce code dedans. Le projet doit référencer les dlls :
    DreamShield.Deployment.dll
    DreamShield.Extentions.dll

    et avoir les using suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    using DreamShield.Extentions;
    using DreamShield.Deployment.Installers.Interfaces;
    using DreamShield.Deployment.Installers;
    using DreamShield.Deployment.Wizards;
    using DreamShield.Deployment.Sequencers;
    using DreamShield.Deployment.Wizards.Workflow;
    ps. dans cet exemple, il faut que tu rajoute l'installation de MS SQLServer dans ton projet et ce, dans le dossier TargetDir. Ici j'ai fait en sorte d'appeller, après l'installation, le fichier TargetDir\SQLServerSetup.exe

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 134
    Points : 75
    Points
    75
    Par défaut
    merci pour tes infos très précises . Je vais essayer ça dès demain. Merci encore.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 134
    Points : 75
    Points
    75
    Par défaut
    ça marche super bien ton logiciel smyley. Cependant je sais pas comment faire pour inscrire dans une clef du registre (que j'ai réussi à créer) le chemin où l'application est installée.

  7. #7
    Expert éminent
    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
    Points : 8 344
    Points
    8 344
    Par défaut
    Tu crées une valeur, dans la boite d'édition des propriétés de la valeur du coche la case "Peut référencer un dossier interne au projet" et tu met comme valeur
    TargetDir::{0}
    TargetDir ettant le nom de ton dossier de destination, dans le projet d'installation. Tu peut aussi faire
    {TARGETDIR}::{0}

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 134
    Points : 75
    Points
    75
    Par défaut
    merci beaucoup ça fonctionne parfaitement. Dis-moi saurais tu par hasard comment faire la meme chose avec l'installeur intégré à VS lorsque j'installe un Service Windows que j'ai créé. Y a le meme système que toi pour créer des clés dans la base de registre mais je ne connais pas les variables qu'il faut référencer... En gros je veux faire la meme chose faite avec DreamShield dans l'installeur MSI. Merci

  9. #9
    Expert éminent
    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
    Points : 8 344
    Points
    8 344
    Par défaut
    aucune idée les variables déclarées de cette manière c'est quelque chose de propore à DreamShield. Je les ai faites pour qu'elles puissent gérer les variables d'environnements, les variables de l'installeur et aussi les noms des fichiers internes à l'installation ( TargetDir par exemple ) ... celà dit tu pourrai très bien installer des services avec DreamShield en créant un plugin de la même manière que pour SQLExpress sauf que cette fois tu aurai appellé InstallUtil à l'installation et à la désinstallation ...

Discussions similaires

  1. Réponses: 8
    Dernier message: 09/02/2007, 12h58
  2. Réponses: 1
    Dernier message: 09/09/2006, 21h52
  3. installation sql server 2005 express
    Par gock dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 21/11/2005, 10h08
  4. [SQL Server 2005 Express] Problème d'installation.
    Par Nadd dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 17/09/2005, 17h47
  5. [Installation]SQL Server 2005 Express Edition sur XP home
    Par Médiat dans le forum MS SQL Server
    Réponses: 15
    Dernier message: 06/08/2005, 18h22

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