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 :

Assembly non trouvé


Sujet :

Windows Forms

  1. #1
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 387
    Points : 2 999
    Points
    2 999
    Par défaut Assembly non trouvé
    Bonjour,

    J'ai une toute petite appli de test qui se connecte à une base SQL Server.

    Quand je l'essaye, je récolte le message suivant lors d'une tentative de connexion à la base:

    ---------------------------
    Authentification incorrecte
    ---------------------------
    Could not load file or assembly 'System.EnterpriseServices.Wrapper.dll' or one of its dependencies. Le chemin d'accès spécifié est introuvable.
    Voulez-vous essayer à nouveau ?
    ---------------------------
    OK Annuler
    ---------------------------
    J'ai rajouté System.EnterpriseServices dans les références mais ça ne change rien.

    Le site de Microsoft me dit qu'il s'agit d'un fichier corrompu et qu'il faut désinstaller puis réinstaller le framework 2.0.
    Quand j'essaye, j'ai un message d'erreur me disant que je ne peux pas désinstaller parce que ça nuirait à des applications installées.

    J'essaye d'installer par dessus, mais là ça me répond que je ne peux pas non plus parce qu'une ancienne version est installée.

    Le fichier indiqué comme manquant est pourtant bien présent dans le dossier du framework 2.0.

    J'ai vu que le chemin d'accès du 2.0 manquait dans le path de windows. Je l'ai donc rajouté et rebooté mon pc.

    Je retente d'utiliser mon application, et toujours le même message.

    Là, je suis à court d'idées ...

    Qu'est-ce que je peux faire d'autre pour essayer de résoudre le problème ?

    Papy !

  2. #2
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    As-tu vérifié que le path mentionné dans les proprièté de tes references pour cette DLL est bien le path ou se trouve cette DLL

    A tout hazard as-tu aussi vérifié que specific version etait bien false
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  3. #3
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 387
    Points : 2 999
    Points
    2 999
    Par défaut
    En fait, je n'ai qu'une référence sur System.EnterpriseServices.
    Je pensais que cela suffisait.
    Je viens d'essayer d'ajouter un référence à C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.Wrapper.dll mais je reçois le message suivant:

    ---------------------------
    Microsoft Visual C# 2008 Express
    ---------------------------
    Une référence à 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.Wrapper.dll' n'a pas pu être ajoutée. Assurez-vous que ce fichier est accessible et qu'il s'agit d'un assembly ou d'un composant COM valide.
    ---------------------------
    OK
    ---------------------------
    Pourtant le fichier est bien présent puisque je le choisis dans la boite de dialogue de choix de fichier lors de l'ajout d'une référence.

    Pour System.EnterpriseServices, le version spécifique est bien indiquée à False.

  4. #4
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Salut,
    Je ne sais pas si ca va t'aider, mais dans notre projet on à parfois eu des problèmes du même genre parce que deux assembly du même nom mais de version différentes existaient, ou encore parce que le WorkingDirectory avait changé entre deux chargement d'assembly, etc...

    Donc on a mis en place un petit truc :
    Code csharp : 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
     
    public class Program
    {
    	public static void Main()
    	{
    		AppDomain app = AppDomain.CurrentDomain;
    		app.AssemblyResolve += app_AssemblyResolve;
    		Application.Run(new MainForm());
    	}
     
    	private Assembly app_AssemblyResolve(object sender, ResolveEventArgs args)
    	{
    		/* Ici tu place ton code pour charger l'assembly a la main */
    		return dll; // Où dll est un objet de type Assembly correspondant à l'assembly chargée
    	}
    }

    L'évènement AssemblyResolve se produit quand la résolution de l'assembly (trouver le fichier et le charger) échoue. C'est très pratique pour rattraper des erreurs. Il y à également un ou deux autres évènements sympa sur le AppDomain

  5. #5
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 387
    Points : 2 999
    Points
    2 999
    Par défaut
    Citation Envoyé par ctxnop Voir le message
    Salut,
    Je ne sais pas si ca va t'aider, mais dans notre projet on à parfois eu des problèmes du même genre parce que deux assembly du même nom mais de version différentes existaient, ou encore parce que le WorkingDirectory avait changé entre deux chargement d'assembly, etc...

    J'ai essayé ta solution mais ça n'a rien donné.

    J'ai fini par désinstaller toutes les versions de .net de 3.5 à 2.0 et j'ai réinstallé le tout. Et là, ça fonctionne ! Il devait y avoir un truc corrompu dans la base de registre ou dans le GAC.

    Merci quand même pour cette astuce intéressante que je mets de coté pour une autre fois.

  6. #6
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Dommage que ca ne t'ai pas aidé, mais l'important c'est que maintenant ca marche

  7. #7
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 387
    Points : 2 999
    Points
    2 999
    Par défaut
    Citation Envoyé par ctxnop Voir le message
    Dommage que ca ne t'ai pas aidé, mais l'important c'est que maintenant ca marche
    Tout à fait ! J'ai essayé d'inclure ton système dans program.cs mais C# ralait à propos de procédures statiques qui ne lui plaisaient pas à cet endroit. J'ai voulu le mettre dans la Form principal, mais le code exécuté ne passait jamais dedans.

    Je suis preneur quand même si tu as ça, d'un petit exemple fonctionnel sur le chargement dans une programme non console.

  8. #8
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Dans une classe statique la méthode doit être static. Si tu la place dans Program qui est une classe static, il faut rendre la méthode app_AssemblyResolve static également.
    Cette méthode est appelée exclusivement lorsqu'il y a échec de résolution d'assembly. Si elle n'est pas appelée c'est parce que tout se passe bien, on ne vas pas s'en plaindre

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

Discussions similaires

  1. [Assembly] Classe non trouvée
    Par zsoh dans le forum Framework .NET
    Réponses: 2
    Dernier message: 11/09/2006, 13h03
  2. Création version client - fichiers non trouvés
    Par Pascal dans le forum WinDev
    Réponses: 7
    Dernier message: 03/12/2004, 11h34
  3. [debutant][Classpath][Linux] Classe non trouvée
    Par oghma777 dans le forum Général Java
    Réponses: 5
    Dernier message: 15/10/2004, 21h26
  4. COleDispatchDriver et Afx.h -> LPCSTR non trouvé
    Par Bayard dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/09/2004, 08h42
  5. [Debutant][Install][VS]erreur sur fichier non trouvé.
    Par silvermoon dans le forum DirectX
    Réponses: 4
    Dernier message: 16/07/2004, 20h59

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