2010-03-05 3 views
4

Existe-t-il un moyen de regrouper un ensemble de DLL et de les utiliser au moment de l'exécution (sans compresser)? Désolé cette question semble laconique et stupide, mais je ne sais pas quoi demander de plus.Grouper des DLL pour les utiliser dans un exécutable

Je vais vous expliquer la situation si:

Nous avons eu deux applications Windows autonomes et maintenant une de nos applications a grossi de telles proportions que disgracieuse l'autre application ne peut pas fonctionner en dehors du champ d'application de la première application . Nous voulons maintenir une partie de l'encapsulation que nous avons eue tout en laissant le plus petit programme sur certaines des fonctionnalités du plus grand programme.

Il n'y a pas de problème lors de l'exécution de l'application, si ce n'est que nous ne voulons pas envoyer toutes les DLL 20-30 que contient le plus petit projet.

+0

Ces assemblys .NET ou bibliothèques de code natif? –

+0

Code natif (en utilisant Delphi) –

Répondre

5

Il est possible de le faire en ajoutant le code de démarrage qui vérifie si les DLL sont présents sur le système cible et sinon les extrait de la section ressources (ou simplement étiqueté sur la fin de l'exe). Un bon exemple de ceci étant fait est Process Explorer - il est distribué comme un seul binaire, mais lorsqu'il est exécuté, il extrait et installe un pilote.

3

Si vous avez une situation où la plupart ou la totalité de ces assemblages doivent être conservés ensemble, je vous recommande fortement de fusionner les fichiers de code dans le même projet et de les recompiler. Cela vous laisserait avec une assemblée.

Bien sûr, il y a d'autres considérations telles que le temps de compilation, la taille globale de la DLL finale, la fréquence à laquelle les différentes pièces changent et si chaque composant est déployé sans les autres.

Un exemple d'entreprise qui a fait cela est Telerik. Leurs composants dev sont tous compilés dans le même assemblage. Cela rend le déploiement un jeu d'enfant. Contrastant c'est Dev Express qui a mis à peu près chaque contrôle dans son propre assemblage. Pour cette raison, il suffit de maintenir, et encore moins de déployer, un projet Dev Express n'est pas quelque chose pour les faibles de cœur.

(je ne travaille pas pour l'une de ces entreprises. Cependant, j'ai beaucoup d'expérience avec les deux boîtes à outils.)

+0

Ils n'utilisent pas d'assemblys, ce n'est pas .NET. (Vous répondez toujours applique cependant.) – Zifre

Questions connexes