web-dev-qa-db-fra.com

Visual Studio 2010 - Il vous manque une directive using ou une référence Assembly?

Lorsque j'ajoute une référence à ma dll dans le projet Visual Studio, je peux l'utiliser, mais lorsque je compile mon code ou que je tente de l'exécuter, je reçois unil vous manque une directive using ou une référence Assembly._ Erreur. Je peux confirmer que j'ai la bonne instruction using pour mon espace de noms et je peux confirmer que la dll est correctement chargée. Quelqu'un a-t-il une idée de ce que je n'ai peut-être pas raison? 

25
user272671

Accédez aux paramètres du projet et assurez-vous que not ne le compile pas pour une version .net incluant le texte "profil client".

59

Je venais tout juste d'avoir un problème comme celui-ci, même s'il s'agit d'une vieille question, mais je voudrais ajouter mon 2c sur ce qui l'a corrigé, car aucune des autres réponses n'a aidé:

Pour une raison quelconque, lorsque j'ai construit la solution de haut en bas, une certaine dll n'était pas mise à jour et la sortie contenait du code modifié. Ainsi, bien que ma solution ne contienne aucune erreur visible, lorsque vous tentez de générer, elle faisait toujours référence à l'ancienne DLL et commençait à se plaindre.

Il s’agissait simplement de reconstruire directement le projet incriminé, puis de récupérer la dernière DLL et de la construire avec joie.

Cela semblait être un accident anormal car aucune configuration n'avait changé entre le moment où cela fonctionnait et le moment où cela ne fonctionnait pas.

6
John

Parfois, il suffit de reconstruire la solution.

4
Akshayraj Kore

Utilisez-vous .net 4.0? 

Si oui, cette dll n'est probablement pas compatible avec .net 4.0

2
Rod

L'emplacement de DLL est important.

Si vous ajoutez une référence sur votre ordinateur local à une DLL située en dehors de votre solution Visual Studio, elle n'est pas nécessairement copiée dans vos fichiers de solution (dépend du type de solution/projet).

Si tel est votre problème, vous devez alors placer la DLL dans le même chemin sur l'autre ordinateur ou la copier dans votre solution afin qu'elle soit déployée avec les fichiers de solution et modifier la référence.

Vous pouvez également gérer cela avec des instructions de construction, mais cela pourrait aller au-delà de vos aspirations pour le moment.

2
DOK

Très probablement, votre dll fait référence à une autre dll que le projet client ne fait pas référence et votre code dll expose un type ou une interface de la 3ème dll au code client.

Si vous postez le message exaCt, nous pourrons mieux vous aider.

2
Franci Penov

Dans mon cas, le projet principal (WinForm) a été configuré Framework Target: FW 4.0 "profil client". Je passe à FW 4.0 et travaille parfaitement !!. À la première fois, je cherchais dans les projets référencés et tout allait bien, mais pas le projet principal. J'espère que cette aide. Je vous remercie.

1
diego

Dans mon cas, cette erreur de compilation a disparu après l’ajout de la référence à Microsoft BCL Build Components via le menu contextuel "Gérer les packages NuGet" sur un projet problématique.

Avant: j'avais le projet Main (application console) référençant le projet A (bibliothèque de classes) . Le projet A dépendait de Microsoft BCL Build Components.

Après: j'ai commencé la refactorisation où j'ai sélectionné plusieurs classes dans le projet séparé New. Cela dépendait aussi de A. Mais l'erreur de compilation s'est produite sur le projet New comme s'il n'y avait pas de référence New -> A (bien que Visual Studio n'ait pas mis en évidence les interfaces et les classes prétendument non trouvées répertoriées dans l'erreur liste de compilation).

Alors j’ai vérifié les dépendances du projet A et y ai trouvé Microsoft BCL Build Components . Après l’avoir ajouté aux dépendances de New, tout a bien fonctionné . Le plus intéressant est que Main contenait pas contenait cette dépendance et n'en avait pas besoin.

J'espère que cela t'aides.

0
flam3