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 :

Chargement d'assemblies aberrant


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    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
    Par défaut Chargement d'assemblies aberrant


    Je charge à la main un certain nombre d'assemblies avec Assembly.LoadFrom et bien que l'assembly soit déjà chargée, en exécutant le code sous VS j'obtiens un FileNotFoundException lorsqu'une ligne de mon code doit utiliser une des assemblies en question, ce code étant dans l'application démarrant. (Hors de VS on dirait que ça marche ...)
    En exécutant des commandes dans VS j'ai ce résultat :
    Code c# : 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
    AppDomain.CurrentDomain.GetAssemblies()
    {System.Reflection.Assembly[30]}
        [0]: {mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089}
        [1]: {WcfSvcHost, Version=9.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35}
        [2]: {DreamShield.X.Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null}
        [3]: {WcfSvchost.resources, Version=9.0.0.0, Culture=fr, PublicKeyToken=31bf3856ad364e35}
        [4]: {DreamShield.X.Commands, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null}
        [5]: {System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089}
        [6]: {System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089}
        [7]: {System.Workflow.ComponentModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35}
        [8]: {SMDiagnostics, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089}
        [9]: {System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a}
        [10]: {System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089}
        [11]: {System.Runtime.Serialization, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089}
        [12]: {System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a}
        [13]: {System.WorkflowServices, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35}
        [14]: {System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35}
        [15]: {Microsoft.VisualStudio.Diagnostics.ServiceModelSink, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a}
        [16]: {system.configuration.resources, Version=2.0.0.0, Culture=fr, PublicKeyToken=b03f5f7f11d50a3a}
        [17]: {System.IdentityModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089}
        [18]: {System.resources, Version=2.0.0.0, Culture=fr, PublicKeyToken=b77a5c561934e089}
        [19]: {DreamShield.Deployment.InstallationDrivers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null}
        [20]: {toc_5hqw, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null}
        [21]: {DreamShield.Deployment, Version=1.15.3259.22885, Culture=neutral, PublicKeyToken=null}
        [22]: {DreamShield.Runtimes.Windows, Version=1.10.3256.26293, Culture=neutral, PublicKeyToken=null}
        [23]: {DreamShield.Data, Version=2.5.3259.22876, Culture=neutral, PublicKeyToken=null}
        [24]: {DreamShield.Luna, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null}
        [25]: {DreamShield.Extentions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null}
        [26]: {DreamShield.Windows.Themes, Version=2.2.1.0, Culture=neutral, PublicKeyToken=null}
        [27]: {DreamShield.IO.Utils, Version=1.5.3235.27475, Culture=neutral, PublicKeyToken=null}
        [28]: ...
    AppDomain.CurrentDomain.Load("DreamShield.Deployment, Version=1.15.3259.22885, Culture=neutral, PublicKeyToken=null");
    'AppDomain.CurrentDomain.Load("DreamShield.Deployment, Version=1.15.3259.22885, Culture=neutral, PublicKeyToken=null")' a levé une exception de type 'System.IO.FileNotFoundException'
        base {System.IO.IOException}: {"Impossible de charger le fichier ou l'assembly 'DreamShield.Deployment, Version=1.15.3259.22885, Culture=neutral, PublicKeyToken=null' ou une de ses dépendances. Le fichier spécifié est introuvable.":"DreamShield.Deployment, Version=1.15.3259.22885, Culture=neutral, PublicKeyToken=null"}
        FileName: "DreamShield.Deployment, Version=1.15.3259.22885, Culture=neutral, PublicKeyToken=null"
        FusionLog: ""
        Message: "Impossible de charger le fichier ou l'assembly 'DreamShield.Deployment, Version=1.15.3259.22885, Culture=neutral, PublicKeyToken=null' ou une de ses dépendances. Le fichier spécifié est introuvable."

    Si vous regardez bien, les termes en gras sont strictement les mêmes ... et l'appel à Assembly.Load fonctionne si je retire "Culture=neutral, PublicKeyToken=null".

    Quelqu'un aurait-il une explication à ce truc ?!

    (merci d'avance ... avec un peut de chance ...)

    ps. J'ai rajouter un handler pour l'évènement AppDomain.CurrentDomain.AssemblyResolve ainsi que TypeResolve mais aucun de ces deux events ne sont appelés lors de l'erreur ...

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 217
    Par défaut
    Si ça peut aider, j'ai remis la main sur un vieil article que je me souvenais avoir vu a propos de ces problemes, qui peuvent etre effectivement liés à la culture ou... aux dépendances "non managed" ; ainsi :

    Je la cite ci-dessous et mets en gras ce qui pourrait te mettre sur une piste :

    http://blogs.msdn.com/suzcook/archiv.../29/57120.aspx

    [...]
    For FileNotFoundException:
    At the bottom of the log will be the paths that Fusion tried probing for this assembly. If this was a load by path (as in Assembly.LoadFrom()), there will be just one path, and your assembly will need to be there to be found. Otherwise, your assembly will need to be on one of the probing paths listed or in the GAC if it's to be found.

    You may also get this exception if an unmanaged dependency or internal module of the assembly failed to load. Try running depends.exe on the file to verify that unmanaged dependencies can be loaded. Note that if you re using ASP.NET, the PATH environment variable it's using may differ from the one the command line uses. If all of them could be loaded, try ildasm.exe on the file, double-click on "MANIFEST" and look for ".file" entries. Each of those files will need to be in the same directory as the manifest-containing file.
    [...]

    'HTH

  3. #3
    Expert confirmé
    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
    Par défaut
    Ma dll n'a aucune référence vers une quelconque dll non managée ou mixte mis à part quelques fonctions dans user32, kernel32 et advapi32 ...

Discussions similaires

  1. Reflection chargement d'assembly/type/methods
    Par kheironn dans le forum C#
    Réponses: 4
    Dernier message: 19/11/2010, 21h06
  2. Problème de chargement d'assembly en mode design VS 2008
    Par Ornitho76 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 07/02/2010, 22h05
  3. Chargement des Assembly dans un domain personnalisé
    Par kurtisnotdead dans le forum Framework .NET
    Réponses: 23
    Dernier message: 24/04/2008, 14h51
  4. Problème de chargement d'assembly
    Par despeludo dans le forum Framework .NET
    Réponses: 2
    Dernier message: 04/04/2008, 08h42
  5. [EDI][D2005]Vitesse de chargement d'assembly au debug
    Par sur_uix dans le forum Delphi .NET
    Réponses: 4
    Dernier message: 12/12/2005, 17h49

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