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 ...