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):

DLL References Copied To Bin

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:

Copy Local Reference

Comment faire?

Remarque: À L'Aide De Visual Studio 2013.

35
demandé sur davenewza 2014-05-08 18:51:05

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 .

19
répondu davenewza 2017-05-23 11:54:56

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.

0
répondu AbleArcher 2017-03-02 16:42:06