2012-11-19 3 views
4

J'ai une solution avec 2 projets.4 Copies de mes DLL au lieu de seulement 1?

Les deux projets nécessitent les mêmes 4 DLL.

J'ai un dossier lib avec les 4 DLL dans chaque projet.

Lorsque la solution est compilée, les 4 DLL de chaque dossier lib sont copiées dans le dossier bin.

Maintenant, il existe 4 ensembles de 4 mêmes DLL.

J'ai essayé de placer les DLL dans le répertoire bin, mais Visual Studio y a jeté beaucoup d'erreurs.

Est-ce ainsi que cela est censé fonctionner? Idéalement, je voudrais seulement un ensemble, deux max. Je ne sais pas où je devrais mettre mes DLL pour résoudre ce problème.

+4

Pourquoi vous souciez-vous qu'il copie les DLL dans chaque répertoire bin? Ce qui compte vraiment, c'est l'endroit où vous installez les DLL dans l'environnement de publication. Si vous installez les deux projets dans le même dossier ou installez les DLL dans un dossier de bibliothèque commun (ou le GAC), vous n'avez besoin que d'une copie de chacun. – mellamokb

Répondre

3

Dans chaque projet, vous les référenceriez (clic droit sur le projet et "Ajouter une référence"). Lors de la création de votre solution ou de votre projet, Visual Studio doit automatiquement copier les DLL référencées requises dans le répertoire /bin pour vous. Comme pour les copies multiples, puisque chaque projet est typiquement autonome, chacun aura un ensemble de DLLs référencées, cependant si le Projet A référence le Projet B, et que vous n'utilisez que le Projet A (disons que le Projet B est une classe bibliothèque), alors il ne devrait y avoir que 6 dll pour le projet A.

- ProjectA/bin/Debug/projectA.dll 
- ProjectA/bin/Debug/projectB.dll 
- ProjectA/bin/Debug/shared1.dll 
- ProjectA/bin/Debug/shared2.dll 
- ProjectA/bin/Debug/shared3.dll 
- ProjectA/bin/Debug/shared4.dll 
4

Oui, c'est comme ça que ça fonctionne.

Vous pouvez ajuster ce processus en modifiant la propriété CopyLocal sur vos références à false.

Définissez-le sur votre projet de démarrage et sur false sur l'autre.

Questions connexes