J'ai une librairie CommonUtils que j'ai intégrée dans une DLL dont je fais référence à plusieurs de mes projets. CommonUtils dépend de log4net.dll qui a été défini comme référence de fichier et copy-local = true lors de la construction de CommonUtils.dll. Les fichiers log4net.dll et CommonUtils.dll ne sont pas au format GAC.Dépendances de références non copiées dans le répertoire de sortie
Tout fonctionne correctement dans MyWorkingProject où j'ai seulement une référence de fichier à CommonUtils.dll - log4net.dll apparaît dans le répertoire de sortie (car il est une dépendance de CommonUtils.dll, mais pas référencé à partir de MyWorkingProject). Cependant, si je crée un nouveau projet pour ajouter des tests unitaires: MyWorkingProjectTest et la référence de projet MyWorkingProject, puis la référence de fichier CommonUtils.dll ici (je veux utiliser certains des CommonUtils) puis lors de la construction de log4net.dll qui est une dépendance à la fois La référence du projet et la référence du fichier ne sont pas copiées dans le répertoire de sortie.
Quelqu'un peut-il clarifier ce qui se passe ici? Est-ce que le compilateur ne sait pas lequel des fichiers log4net.dll il devrait saisir? Y at-il quelque chose que je fais mal ici? Dois-je faire cela d'une autre manière pour que le fichier log4net.dll soit copié explicitement? Cela a-t-il un sens que je doive explicitement faire référence à log4net?
Comment ajouteriez-vous log4net comme référence de projet car je n'ai que la DLL binaire distribuée. Aussi pourquoi devrais-je ajouter une référence à lui comme c'est simplement une dépendance d'une de mes références. Quelqu'un a déclaré que vous ne devriez pas référencer les bibliothèques que vous n'utilisez pas explicitement dans votre code. – Fadeproof
Je ne voulais pas parler de «référence de projet» plutôt que de «référence» dans votre projet. – user7116