Projet A références Projet B et Le projet B fait référence à un DDL externe (restauré à l'aide de NuGet). Le DLL doit être copié dans Projet A dossier bin (avec avec Projet B 'DLL):
Dans mon cas, lors de l'exécution de Projet A , je reçois l'exception suivante levée:
Impossible de charger le fichier ou l'assembly "PostSharp, Version = 3.2.18.0, Culture = neutral, PublicKeyToken = b13fd38b8f9c99d7" ou l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.
Le DLL n'est pas copié dans Projet A . Toutes les autres références externes de Projet B sont très bien copiées, ce qui est déroutant pour moi.
Copy Local
est défini sur true pour toutes les références impliquées. Exemple:
Comment puis-je faire cela?
Remarque: Utilisation de Visual Studio 2013.
Les options que j'ai trouvées étaient les suivantes:
Je n'aime aucune des solutions ci-dessus. Ce sont des hacks à mon avis et ne feront qu'une solution plus difficile à maintenir à long terme.
J'ai résolu le problème en utilisant un répertoire de sortie commun. Cela semble être une solution recommandée par beaucoup. J'ai également connu des temps de construction beaucoup plus rapides. Voir ce post Stackoverflow .
Lorsque j'ai rencontré ce problème, c'est parce que j'ai changé le nom d'un projet, mais que je n'ai pas changé le nom de l'assembly - il était identique au nom de l'assembly d'un autre projet dans la solution.
J'ai ajouté du code factice (inutilisé) sur le projet B, faisant référence au DLL nécessaire).
Ainsi, le compilateur devinera qu'il doit copier le DLL dans la sortie du projet A).