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

Dotnet Discussion :

Question Référencement DLL


Sujet :

Dotnet

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 18
    Points : 8
    Points
    8
    Par défaut Question Référencement DLL
    Bonjour,

    J'ai créé une librairie de classe (toto.dll) qui fait référence à la DLL de l'ODP.NET d'Oracle Oracle.DataAccess.dll.

    Ensuite j'ai un projet de type application Windows qui référence toto.dll car elle en utilise certains composants.
    Lorsque j'ajoute la référence de toto.dll dans mon projet windows, la DLL d'Oracle n'est pas remonté. Du coup lorsque j'utilise un élément de cette DLL qui lui-même fait appel à des fonctionnalités de la DLL d'Oracle, j'ai l'erreur suivante :


    Erreur 19 Une référence indirecte est établie à l'assembly 'Oracle.DataAccess', qui contient 'Oracle.DataAccess.Client.OracleParameter'. Ajoutez une référence de fichier pour '...\odp.net\bin\2.x\Oracle.DataAccess.dll' dans votre projet.


    Comment puis-je régler ce problème, en évitant de rajouter dans mon projet application windows, la référence à la DLL Oracle ?
    Vu que toto.dll est compilé à partir de la DLL Oracle je pensais que cette dernière était inclu dans toto.dll. Mais ce n'est pas le cas apparement.

    Merci d'avance.

    Chris

  2. #2
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    Salut

    Si j'ai bien compris le pb, ta dll expose des types de la dll d'oracle, ce qui force les applications qui utilisent ta dll a referencer la dll d'oracle. Explore tes methodes et tes proprietes pour trouver ce qui pose probleme

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Piotrek : C'est bien ça.
    En fait dans ma librairie toto.dll j'ai 2 classes A et B avec B qui hérite de A.
    Mon application windows appelle une méthode de B qui, elle, utilise des types et propriétés de la DLL d'Oracle.

  4. #4
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Qu'est ce qui te dérange au fait d'ajouter la référence Oracle à ton projet Windows ?
    Jérôme Lambert
    Développeur, Architecte, Rédacteur & Fan technologies Microsoft
    Ma boite informatique | Mon profil LinkedIn

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Salut Cardi,

    Et bien je trouve dommage que lorsqu'on référence une DLL dans un projet, les DLLs qu'elle-même utilise, ne soient pas aussi "ramenées" dans ce projet.
    J'aimerais que le développeur n'ai pas à se soucier de cela.

  6. #6
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Personne n'a d'idées sur le sujet ?

  7. #7
    Membre régulier
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    110
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 110
    Points : 106
    Points
    106
    Par défaut
    de tête: si tu références le projet Toto dans ta solution, les dépendances de toto sont ramenées me semble-t-il.
    Sinon quand tu réfèrences la DLL directement, j'imagine que tu la références depuis un catalogue où se trouvent les dépendances de toto. du genre
    * bin
    - toto.dll
    - ODP.dll
    Ben là tu peux référencé toutes les Dll d'un seul coup.
    Et un petit coup de clean à la fin histoire de virer les Dll non utilisés

    Dom

  8. #8
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Salut dom et merci pour ta réponse,

    j'aimerais n'avoir qu'à référencer toto.dll qui n'ai pas un projet de la solution, et que ODP.dll s'ajoute automatiquement au référence de mon projet, puisque toto.dll l'utilise.

    Si c'est ce que tu tentais de m'expliquer, je n'ai pas très bien suivi la marche à suivre, alors

  9. #9
    Membre régulier
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    110
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 110
    Points : 106
    Points
    106
    Par défaut
    tu ecris avoir créé toto.dll. Quand tu compiles tu obtiens un catalogue avec tot.dll et les dll dont toto dépend. quand tu références toto tu dois alors naviguer jusqu'à ce catalogue. au lieu ne choisir que toto tu choisis toutes les dll du catalogue.
    Il peut arrivé que tu prennes alors des dll dont tu ne te serviras pas
    eks.
    toto est dependant de odp.dll mais auusi de foo.dll quand tu utilises la fonction toto.bar.GetFoo().
    si tu n'utilise jamais cette fonction dans ton programme tu n'as alors pas besoin de foo.dll. c'est pourquoi je proposais d'utiliser visual studio pour nettoyer les reference non utilisées
    en espérant que c'est plus clair

    dom

  10. #10
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    Ok j'ai compris l'idée,
    quand je vais récup toto.dll (dans le bin de son projet par exemple), tu me dis de prendre aussi les dll qui ont été générées à partir de ce projet (qui lui sont donc nécéssaire).

    En fait je n'ai pas trop le choix, si je référence toto.dll, je doit mettre au même endroit que cette dll les autres dlls dont elle dépend, d'où l'intérêt du GAC.

    merci

Discussions similaires

  1. Question Référencement ?
    Par sihammaster dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 16/02/2012, 15h28
  2. Problème de référencement dll
    Par alexxxx69 dans le forum ASP.NET MVC
    Réponses: 3
    Dernier message: 02/01/2012, 14h54
  3. Question référencement non résolue
    Par hugo7 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 09/04/2009, 18h39
  4. Question sur DLL
    Par inertia dans le forum Windows
    Réponses: 7
    Dernier message: 08/08/2006, 11h07
  5. question référencement
    Par BGDC dans le forum Référencement
    Réponses: 3
    Dernier message: 24/05/2005, 14h10

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