Référence DLL non copiée dans le projet bin
Projet Un références Projet B , et Projet B références externes DDL (restauré à l'aide de NuGet). La DLL doit être copiés dans Projet Un bin (avec Projet B DLL):
dans mon cas, quand on exécute projet A , j'obtiens l'exception suivante lancée:
ne pouvait pas charger le fichier ou l'assemblage ' PostSharp, Version = 3.2.18.0, Culture=neutre, Publiceytoken = b13fd38b8f9c99d7' ou l'un de ses dépendance. Le système ne peut pas trouver le fichier spécifié.
la DLL N'est pas copiée dans Projet Un 's bin. Toutes les autres références externes de projet B sont copiées à travers juste fine, ce qui est ce qui est déroutant pour moi.
Copy Local
est défini à true pour toutes les références concernées. Exemple:
Comment faire?
Remarque: À L'Aide De Visual Studio 2013.
2 réponses
les options que j'ai trouvées étaient:
- ajouter une référence à PostSharp dans le projet A.
- ajouter le code fictif dans le projet B afin que le compilateur puisse détecter que la référence est utilisée.
- Ajouter un événement de construction pour forcer la copie de la DLL.
Je n'aime aucune des solutions ci-dessus. Ils sont des hacks, à mon avis et ne plus désuète solution à long exécuter.
j'ai résolu le problème en utilisant un répertoire de sortie. Cela semble être une solution recommandée par beaucoup. J'ai également connu des temps de construction beaucoup plus rapides. Voir ce poteau de débordement .
quand j'ai rencontré ce problème, c'était parce que j'ai changé le nom d'un projet, mais pas le nom de l'assemblée - il était identique au nom de l'Assemblée d'un autre projet dans la solution.