c# - visual - Référence de la DLL non copiée dans le dossier du projet




visual studio reference not found (2)

J'ai ajouté du code factice (non utilisé) sur le projet B, en faisant référence à la DLL nécessaire.

Ainsi, le compilateur devinera qu'il doit copier la DLL dans la sortie du projet A.

Le projet A fait référence au projet B et le projet B fait référence à un DDL externe (restauré à l'aide de NuGet). La DLL doit être copiée dans le dossier bin du projet A (avec la DLL du projet B ):

Dans mon cas, lors de l'exécution du projet A , l'exception suivante est générée:

Impossible de charger le fichier ou l'assembly 'PostSharp, Version = 3.2.18.0, Culture = neutre, PublicKeyToken = b13fd38b8f9c99d7' ou l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.

La DLL n'est pas copiée dans le chut du projet A. Toutes les autres références externes du projet B sont copiées parfaitement, ce qui est source de confusion 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:

  • Ajoutez une référence à PostSharp dans le projet A.
  • Ajoutez du code factice dans le projet B afin que le compilateur détecte 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. Ce sont des bidouilles à mon avis et ne feront que créer une solution plus intenable à 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 .





solution