Je suis en train de construire un service c # windows et j'ai ajouté quelques références d'assemblage (à d'autres projets de mon cru) à mon projet.
Je reçois le message d'erreur suivant lors de la construction:
"Erreur 25 Le nom de type ou d'espace de nom 'TestClass' est introuvable (vous manque une directive using ou une référence Assembly?"
Il est intéressant de noter que le chemin de référence dans le fichier csproj est correct, et en plus de cela, les classes et les espaces de noms du projet référencé, qui selon Visual Studio est manquant, sont repris par Intellisense et même le "go to definition" la fonction fonctionne bien. En outre, d’autres projets se trouvent exactement dans le même dossier que mon nouveau service Windows et ils ont parfaitement compris les références à Assembly. Tous les projets référencés sont inclus dans la solution.
J'utilise Visual Studio 2013 Update 3. Il n'y a pas vraiment de code que je pourrais montrer qui vous donnerait plus d'informations, mais laissez-moi savoir si vous voulez voir des captures d'écran ou quelque chose du genre.
Tentatives jusqu'à présent:
Mise à jour Lorsque je sélectionne l'une des références "manquantes" dans la liste des références et que j'accède aux propriétés, aucun chemin n'est défini. Cependant, le chemin relatif est dans le fichier csproj comme il est correct. Déroutant.
Update 2 Supprimer toutes les références, recharger les projets puis effectuer un nettoyage le corrige pour moi. Apparemment, le problème était dû au fait que toutes les dll n'étaient pas mises à jour dans la pile de construction.
1.Retirer toutes les références
2.Build -> Solution propre
3. Nettoyez votre projet à l'aide de project , car parfois Visual Studio ne parvient pas à tout nettoyer proprement.
Dans mon cas, le cadre cible du projet d'assemblage et le cadre cible du projet pour lequel je souhaite utiliser cette assemblée sont différents .
Lorsque je modifie le cadre cible de mon projet en cadre cible du projet Assembly, c'est-à-dire de 4.0 à 4.5, cela fonctionne correctement.
Pour changer le cadre cible du projet,
Faites un clic droit sur le projet -> Propriétés -> Application -> Framework cible
Dans la liste déroulante de cette structure cible, sélectionnez la structure requise dans cette liste.
Un autre problème possible pourrait être mismatch dans les versions ciblées de .NET entre les assemblys. J'ai éprouvé les mêmes symptômes et la configuration de la même version du framework a fait l'affaire pour moi.
Assurez-vous que vous avez sélectionné "Construire uniquement" dans la liste des erreurs, ne choisissez pas "IntelliSense", ce qui est une perte de temps.