2009-10-19 8 views
2

Il y a beaucoup de discussions qui montrent comment charger des assemblages de BIN et de GAC ... ma question est plus générale et j'aimerais savoir comment fonctionne le chargement de l'assemblage.Chargement des assemblages

Comme par exemple

dans le dossier BIN nous pouvons avoir

A.dll 
A.dll.config 

fichier A.dll.config peut ressembler à:

<?xml version="1.0"?> 
<configuration> 
    <startup> 
    <supportedRuntime version="v2.0.50727"/> 
    </startup> 
</configuration> 

pour nous aider à régler la référence de montage correct . Je me demandais comment je peux créer un A.dll qui a besoin de B.dll mais sans spécifier aucune version, donc si je prendrais toujours le B.dll qui est dans le dossier BIN. Ma question concerne une mise à jour du SDK et tout mon code pointe encore vers l'ancienne version SDK, je voulais que mon assembly recherche la version la plus haute de toutes les versions de la ressource, BIN ou GAC et utilise celle-ci ...

Comment puis-je dire cela dans Visual Studio? Je ne peux ajouter une référence à un fichier physique (version) :-(

Répondre

1

Si je comprends bien , Je suppose que vous pouvez utiliser la manière "plugins" de faire à travers l'objet AppDomain.Peut-être charger l'assembly à travers l'AppDomain, puisque vous pouvez définir le chemin pour l'assembly chargé, vous pourrez facilement remplacer les fichiers, décharger le ShadowCopy vous permet de copier le dernier fichier au même emplacement que l'assemblage de fichiers en cours, puis de construire votre mécanisme pour vérifier la présence d'un nouveau fichier, et s'il existe, déchargez votre assemblage et recharger le dernier, de cette façon, tout va s'arrêter E transparent pour votre programme, bien qu'il nécessite un peu plus de programmation de votre part. Néanmoins, vous gagnerez dans le développement à long terme.

1

Vous pouvez utiliser la liaison tardive et la réflexion. Il y a beaucoup d'endroits à lire à ce sujet, mais vous pouvez commencer here.

Questions connexes