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

VB.NET Discussion :

Exe ne fonctionne plus sur un autre PC


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut Exe ne fonctionne plus sur un autre PC
    Bonjour,
    J'ai compilé un exécutable en mode Debug sur mon PC de dévellopement. Tout fonctionnait trés bien jusqu'a ce que j'ajoute une réference à :
    Microsoft ActiveX Data Objects 2.8 Library, avec cette réference mon exe ne fonctionne plus sur le second PC.

    Voici un extrait du message d'erreur :
    ************** Texte de l'exception **************
    System.TypeInitializationException: Une exception a été levée par l'initialiseur de type pour 'X_project.ConvertDBBase'. ---> System.InvalidCastException: Impossible d'effectuer un cast d'un objet COM de type 'ADODB.ConnectionClass' en type d'interface 'ADODB.Connection'. Cette opération a échoué, car l'appel QueryInterface sur le composant COM pour l'interface avec l'IID '{00001550-0000-0010-8000-00AA006D2EA4}' a échoué en raison de l'erreur suivante*: Cette interface n'est pas prise en charge (Exception de HRESULT : 0x80004002 (E_NOINTERFACE)).
    à X_project.ConvertDBBase..cctor()
    Vous avez une idée pour régler le problème ? Auparavant j'avais aussi ajouté une réference à ADO Ext 2.8 for DLL and Security et je n'avais jamais eu ce type de probleme avec cette réference.

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Bonjour,

    je n'ai jamais eu ce problème mais avec une recherche sur le code erreur on trouve facilement ceci : http://support.microsoft.com/kb/956708

    A essayer...

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut
    Bonjour et merci de m'avoir répondu mais le problème ne vient pas du PC de dévellopement ni du PC de destination.
    C'est peut-être lié à la facon dont je distribue mon application. Je fait juste un copier coller de mon executable de la machine de develloppement vers mon autre PC.
    Cette méthode fonctionnait avant, il y a d'autres moyens pour distribuer une application ?
    On peut intégrer la dll directement dans le dossier de l'application ?

  4. #4
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Pour distribuer un programme sans faire d'installateur il faut donner le dossier Bin/Release, qui contient toutes les DLL nécessaires.

    Sinon, les installateurs peuvent se charger de tout installer mais c'est légèrement plus complexe à faire, le plus simple des installateur étant (pour moi) la distribution via ClikOnce.

  5. #5
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut
    Merci beaucoup, je ne pourrais tester que demain. Le problème se pose avec Windows XP, sous Windows 7 il n'y a pas de problème.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut
    Bonsoir, je n'ai pas trouver d'options pour intégrer les dll au package d'installation et du coup je ne vois pas de dll dans le dossier Release. Les seules dll que je trouve sont dans obj\x86\Debug et se nomment interop.ADODB.dll et interop.ADOX.dll.
    Dois je renommer ces dll en ADODB.dll et ADOX.dll et est ce qu'une simple copie dans le dossier d'installation suffira, j'aimerais si possible que mon application n'est pas besoin d'installation.
    Merci d'avance pour votre aide.

  7. #7
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut
    Bonjour, J'ai tenté une copie des dll dans le dossier d'installation, rennomé les dll. J'ai aussi lancé une installation par le setup (depuis le dossier Publish).
    Ca ne fonctionne toujours pas, je retrouve le problème sur tous les PC Windows XP.

    Vous pouvez m'aider svp ?

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    En fouillant un peu sur le net, on trouve cet article de Microsoft qui explique le problème :

    http://support.microsoft.com/kb/2517589

    Bonne journée.

    Eb.

  9. #9
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par Sankasssss Voir le message
    le plus simple des installateur étant (pour moi) la distribution via ClikOnce.
    Inno setup est aussi assez facile à utiliser
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  10. #10
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut
    Merci beaucoup ebastien, c'est pile ce qu'il me fallait.
    A priori l'article propose une mise à jours des composants ActiveX Data Objects (ADO) avec notament Microsoft ActiveX Data Objects 6.1 Library inclus dans l'update.
    Je n'y avait pas du tout pensé mais ce soir je recompile mon projet avec la version 6.1 de base sur mon PC de devellopement, avec un peu de chance ca devrait fonctionner. Au pire j'installerais l'update.
    (Comme les 2 PC sont à 2 endroits différents, ca va me prendre du temps cette histoire )

  11. #11
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut
    Bonjour, ca ne fonctionne pas . Je ne comprends pas.
    J'ai installé l'update Microsoft ActiveX Data Objects 6.1 Library sur mon pc de dévellopement. J'ai modifier la réference dans mon projet vers cette nouvelle dll, j'ai recompilé.
    J'ai toujours le même problème.

  12. #12
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut
    Bonjour, je n'ai toujours pas résolu mon problème.
    Je me serts de la réference ActiveX Data Objects xx uniquement pour instancier une connection ADODB.Connection.
    Celle-ci est necessaire pour le code ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Cnx As New ADODB.Connection
    Connstr = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & PathName & ";Jet OLEDB:Database Password=" & PASSWORDdb & ";"
    Cnx.ConnectionString = Connstr
     
    Dim Catalog As ADOX.Catalog
    Cnx.Open()
    Catalog.ActiveConnection = Cnx
    La propriété ActiveConnection n'accepte pas la connexion si je lui passe une chaine de caractére comme ceci : Catalog.ActiveConnection = Connstr
    Si vous connaissez une autre solution pour éviter d'utiliser cette réference, ca m'arrangerais beaucoup.

  13. #13
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Bonjour

    Pourquoi utiliser ADODB pour se connecter au moteur Jet ?
    Pourquoi ne pas utilliser OleDB qui est standard dans le framework ?

    Quel est le besoin ici ?

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  14. #14
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut
    Bonjour et merci de me répondre,
    - J'utilise OleDB pour faire des lectures/écritures "standard" dans mon code.
    - J'utilise aussi ADOX pour créer une nouvelle base (Avec les tables, relations....etc) :
    Catalog.Create(Connstr) ' Ca fonctionne (même avec une chaine de caractére pour la connexion)
    - J'utilise aussi ADOX pour faire des migrations de bases de données existantes (qui contient déja des données) vers des nouvelles versions. (Ajout de colonnes, ajout de tables...etc)
    Seul problème : Activeconnection à besoin d'une connection ADODB apparement.

  15. #15
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut
    Bonjour, j'ai trouvé cet article mais j'ai un peu de mal à traduire (ou comprendre) les 3 étapes :
    http://blogs.msdn.com/b/psssql/archi...to-fix-it.aspx

    1.Ship the 6.0 type library from Windows 7 RTM via the new type library file msado60.tlb. This will ship for multiple platforms.
    2.Ship a new 6.1 type library (which contains both new and deprecated interfaces) and embed it inside the msado15.dll
    3.Revert back all 2.x type libraries to what they looked like in Windows 7 RTM.
    Therefore, the 2.x and 6.0 type libraries can be used for backward compatible purposes, and the 6.1 type library can be used for 64-bit VBA solutions. If you find yourself in the enviable place of not having to do any downlevel OS support, you can migrate entirely to the 6.1 type library even for your non-VBA applications.

    Je fouille et j'essaye toutes les pistes possible, j'espère que vous pourrez m'aider.

  16. #16
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut
    Bonjour, ca fonctionne enfin. Je ne comprends pas pourquoi, je n'ai rien fait entre temps (sauf que mon ordi à fait quelques mises à jours qui n'ont rien à voir à mon avis).
    Bref le principale est que cela fonctionne :

    Voici mes tests avec et sans le correctif MDAO : (Compilation depuis 2 PC de développement Win7 (X86 et X64) et essai d'exécution du projet sur un PC Windows XP :

    Compilation depuis Win7 X32, sans le correctif MDAO :
    MDAO 2.0 -> Succés
    MDAO 2.8 -> Succés
    MDAO 6.0 -> Succés
    MDAO 6.1 -> Echec
    Compilation depuis Win7 x64, sans le correctif MDAO :
    MDAO 2.0 -> Pas testé.
    MDAO 2.8 -> Echec
    MDAO 6.0 -> Echec
    MDAO 6.1 -> Non disponible sans le correctif.

    Compilation depuis Win7 x32, avec le correctif MDAO.
    Pas testé, je supose que cela fonctionne.

    Compilation depuis Win7 x64, avec le correctif MDAO.
    MDAO 2.0 -> Succés
    MDAO 2.7 -> Succés
    MDAO 2.8 -> Succés
    MDAO 6.0 -> Succés
    MDAO 6.1 -> Succés

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

Discussions similaires

  1. test.exe qui ne fonctionnent pas sur les autres machines
    Par sboumediene dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 11/06/2011, 08h06
  2. [DOM] Code ne fonctionnant pas sur d'autres ordi
    Par Fatjo dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 09/11/2007, 12h23
  3. C++ programme ne fonctionne plus sur autre PC
    Par Benjimo dans le forum C++
    Réponses: 5
    Dernier message: 13/06/2007, 10h58
  4. mon .exe ne fonctionne pas sur d'autre machine
    Par fmh1982 dans le forum Visual C++
    Réponses: 11
    Dernier message: 03/05/2007, 00h03
  5. les actions ne fonctionnent plus sur ma page
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 47
    Dernier message: 14/11/2005, 13h45

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