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 :

MySQL.Data.dll et projet de déploiement


Sujet :

C#

  1. #1
    Membre Expert Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Par défaut MySQL.Data.dll et projet de déploiement
    Bonjour,

    Je viens de finir un projet développé sous VS 2008 et MySQL. J'ai donc crée un projet de setup pour le déploiement et les dépendances de mon projet, dans mon cas le .net framework et MySQL.Data.dll s'affichent bien aussi dans le dossiers des dépendances.
    Après installation sur le poste client, j'ai constaté que l'install wizard n'a pas installé MySQL.Data.dll. Il a fallu que je réinstalle le connector/net 5.2 avant que le client ne puisse finalement se connecter au serveur.
    Alors comment indiquer au projet de déploiement d'installer automatiquement MySQL.Data.dll ?
    Merci d'avances pour vos apports

  2. #2
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    Il faut l'inclure dans le projet de déploiement non ?

    Sinon je me rappel plus si MySql à un .msi mais si oui tu doit pouvoir dire cette dépendance correspond à ce paquet msi et l'inclure dans ton projet de déploiement.

  3. #3
    Membre Expert Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Par défaut
    Citation Envoyé par dev01 Voir le message
    Il faut l'inclure dans le projet de déploiement non ?
    Dans les options de déploiement, j'ai précisé que MySQL.Data.dll est une dépendance et le projet de déploiement l'a bien mis dans le dossier Dependencies. Y-a-il une autre façon d'inclure cette dll dans le projet de déploiement ? si oui, pourrais-tu m'indiquer comment faire ?

    Citation Envoyé par dev01 Voir le message
    Sinon je me rappel plus si MySql à un .msi mais si oui tu doit pouvoir dire cette dépendance correspond à ce paquet msi et l'inclure dans ton projet de déploiement.
    MySQL.Data a un msi, enfin le msi du connector/net 5.2. Comment signifier alors à mon projet de dépoiement que tel dll correspond à ce paquet msi et de l'inclure dans mon projet de déploiement ? Merci d'avance

  4. #4
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    Je viens de vérifier, Si la dll est en dépendance elle est bien copié dans le répertoire de destination à l'installation du setup.

  5. #5
    Membre Expert Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Par défaut
    Citation Envoyé par dev01 Voir le message
    Je viens de vérifier, Si la dll est en dépendance elle est bien copié dans le répertoire de destination à l'installation du setup.
    Effectivement. Mais quand j'installe l'application sur le poste client, j'ai l'impression que la dll n'est pas installée. Comme je l'ai dit, il a fallu que je réinstalle connector/net de mysql avant que le client n'arrive finalement à se connecter au serveur. Je me suis donc poser pluseurs questions : après mons install, dois-je copier manuellement MySQL.Data.dll dans un répertoire précis ? si oui où ? Sinon que faut-il faire pour que l'install wizard même le fasse automatiquement ?
    Merci

  6. #6
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    La premiere question c'est : Est ce que la dll est bien copié dans le répertoire d'installation de ton application chez ton client ?

    Ensuite si la réponse est oui : Est ce que cette dll est dans le GAC sur ton poste de dev ? Si oui alors il faut quelle soit inscrite dans le GAC également chez ton client.

    Pour finir comment sais tu que la dll n'est pas trouvé chez ton client ? Tu as un exception au lancement de ton application ?

  7. #7
    Membre Expert Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Par défaut
    Citation Envoyé par dev01 Voir le message
    La premiere question c'est : Est ce que la dll est bien copié dans le répertoire d'installation de ton application chez ton client ?
    Oui elle se trouve bel et bien dans le repertoire d'install sur le poste client

    Citation Envoyé par dev01 Voir le message
    Ensuite si la réponse est oui : Est ce que cette dll est dans le GAC sur ton poste de dev ? Si oui alors il faut quelle soit inscrite dans le GAC également chez ton client.
    Désolé, mais comment savoir que le dll est dans le Global Assembly Cache (GAC) ? Comment faut-il l'inscrire et sur mon poste de développement et sur le poste client ? Pourquoi est-ce important ?
    Citation Envoyé par dev01 Voir le message
    Pour finir comment sais tu que la dll n'est pas trouvé chez ton client ? Tu as un exception au lancement de ton application ?
    Oui, une exception de type NullReference a été levée.

    Merci bien pour tes apports.

  8. #8
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    Citation Envoyé par callo Voir le message
    Oui, une exception de type NullReference a été levée.

    Merci bien pour tes apports.
    Déjà on va commencer par la : As tu l'exception exacte ?


    Sinon pour savoir si la dll est dans le gac c'est simple : dans vs tu fait cliques droit Propriété sur ta dll. Si c'est pas marqué "Copié en local" c'est que la lib est enregistré dans le gac. (D'ailleurs je viens de vérifier elle est dans le gac)

    Pour l'installer dans le GAC au moment du setup il faut faire sur ton projet de setup :
    - Cliques droit -> Affichage -> Système de fichiers

    Dans l'affichage qui vient de s'ouvrir :
    - Cliques droit -> Ajouter un dossier spécial -> Dossier Global Assembly Cache
    Dans la partie droite du GAC :
    - Cliques droit -> Ajouter -> assembly et sélection MySql.Data

    C'est important car ton application cherche à charger MySql.Data à partir du GAC et non pas du dossier courant. Et comme elle ne le trouve pas, elle plante.

  9. #9
    Membre Expert Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Par défaut
    Citation Envoyé par dev01 Voir le message
    Déjà on va commencer par la : As tu l'exception exacte ?
    Elle est un peu longue, mais la voici ci-dessous. Après des tests, j'ai constaté que c'est au moment où la chaîne de connection doit charger le provider MySQL.Data.dll que l'exception est levée.
    See the end of this message for details on invoking
    just-in-time (JIT) debugging instead of this dialog box.

    ************** Exception Text **************
    System.NullReferenceException: Object reference not set to an instance of an object.
    at ManageFinance.FrmAuthentification.btnValidate_Click(Object sender, EventArgs e)
    at System.Windows.Forms.Control.OnClick(EventArgs e)
    at System.Windows.Forms.Button.OnClick(EventArgs e)
    at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    at System.Windows.Forms.Control.WndProc(Message& m)
    at System.Windows.Forms.ButtonBase.WndProc(Message& m)
    at System.Windows.Forms.Button.WndProc(Message& m)
    at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Loaded Assemblies **************
    mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------
    ManageFinance
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Program%20Files/HOME/FinanceSetup/ManageFinance.exe
    ----------------------------------------
    System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    ----------------------------------------
    System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    ----------------------------------------
    Accessibility
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Accessibility/2.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
    ----------------------------------------
    MySql.Data
    Assembly Version: 5.2.3.0
    Win32 Version: 5.2.3.0
    CodeBase: file:///C:/Program%20Files/HOME/FinanceSetup/MySql.Data.DLL
    ----------------------------------------
    System.Data
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll
    ----------------------------------------
    System.Transactions
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.Transactions/2.0.0.0__b77a5c561934e089/System.Transactions.dll
    ----------------------------------------
    System.Configuration
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    ----------------------------------------
    System.Xml
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
    ----------------------------------------

    ************** JIT Debugging **************
    To enable just-in-time (JIT) debugging, the .config file for this
    application or computer (machine.config) must have the
    jitDebugging value set in the system.windows.forms section.
    The application must also be compiled with debugging
    enabled.

    For example:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    When JIT debugging is enabled, any unhandled exception
    will be sent to the JIT debugger registered on the computer
    rather than be handled by this dialog box.
    J'avoue que je ne comprends pas grand chose à ce baratin mais après install du connector/net, mon application a commencé par marcher comme sur des roulettes . Merci pour les détails sur la vérification des dll dans le GAC. Comme je n'ai pas VS 2008 sur la machine que j'utilise actuellement, je ferai la manipulation une fois à la maison et donnerai suite après. dev01

Discussions similaires

  1. Connexion BDD MySql, erreur dll Mysql.Data.CF
    Par mustardpimp dans le forum Windows Mobile
    Réponses: 6
    Dernier message: 16/02/2010, 14h46
  2. Réponses: 10
    Dernier message: 17/01/2010, 20h58
  3. Réponses: 5
    Dernier message: 25/09/2009, 17h24
  4. ajouter une dll à un projet devcpp....
    Par youp_db dans le forum Windows
    Réponses: 1
    Dernier message: 28/09/2005, 21h33
  5. ajouter une dll à un projet devcpp....
    Par youp_db dans le forum Dev-C++
    Réponses: 1
    Dernier message: 28/09/2005, 20h47

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