2009-07-20 4 views
0

Je crée des sites Web .net sur un serveur CMS à l'aide de l'API du fournisseur de logiciels. Le problème est que pour chaque version du logiciel CMS j'ai différentes DLL (la plupart non versionnées) que j'ai à traiter. Donc, maintenant je construis des composants de serveur réutilisables qui dépendent de ces DLL, mais comme je veux utiliser ces composants sur différents sites web avec différentes versions de DLL, je dois trouver un moyen de changer les dépendances.Ajout de dépendances .net dll à un projet

Est-il possible de regrouper toutes les dépendances dans une seule DLL (et conserver les espaces de noms d'origine)?

Répondre

1

ILMerge de Microsoft Research vous permet de combiner plusieurs assemblages en un seul et de conserver les espaces de noms d'origine.

+0

L'outil fait un excellent travail. Il y a quelques assemblées qui n'ont pas pu être fusionnées mais cela semble prometteur. – Pablo

0

S'il existe un conflit d'espace de noms, vous risquez d'être obligé de charger dynamiquement la DLL. Vous pouvez le faire en utilisant la classe Assembly et un peu de réflexion pour saisir les points d'entrée appropriés. En résumé, vous ne dépendez pas de l'heure de compilation de l'API et vous créez votre propre encapsuleur en implémentant ce wrapper à l'aide d'appels invoqués dynamiquement (via la réflexion) vers la DLL. Je suis sûr que c'est plus facile dans C# 4.0, mais ça marchera bien dans 1.0 aussi.

Questions connexes