Bonjour à tous,
Le titre est explicite, je m'interroge sur comment le chargement d'une même DLL entre deux exécutable est géré sous .NET.
Concrètement, j'ai deux exécutable dans un répertoire AppA.exe et AppB.exe. Ces deux exécutable utilisent une librairie gourmande quant à l'utilisation de la mémorie: Lib.dll. Étant donné que AppA et AppB fonctionnent dans un environement limité (un PDA) l'utilisation de la mémoire doit être optimal.
Donc, ma question est: Est-ce que ladite DLL sera chargée une seule fois pour les 2 exécutables ou si elle sera chargée deux fois en mémoire (soit une fois pour chaque exécutable)?
En Win32, à moins que je me gourre, la DLL sera chargée qu'une seule fois (indépendament de sa location et de sa version) et c'est justement cela qui, selon wikipedia, a donné naissance à l'expression `DLL Hell`.
Je connais l'existance de la GAC, mais j'essais de l'évité autant que possible, étant donnée qu'elle occasionne une complexité pour le déploiement des applications qui serait facilement évitable. De plus, ladite librairie dépend sur plusieurs autres DLLs propriétaires dont je ne possède pas le code source et qui n'ont pas nécessairement de `Strong Name`.
J'ai cherché sur le web et sur le forum, mais sans succès. Donc, votre aide sera très appréciée .
Ah de plus, si vous avez une idée sur comment je pourrais découvrir la réponse par moi-même ce sera tout autant apprécié Pour l'instant j'essais de créer un projet bidon avec une giga librairie et observé l'utilisation de la mémoire, mais c'est c'est pas génial .
Partager