Pourquoi ne puis-je pas référence à ma bibliothèque de classe?
J'ai une solution qui contient un site internet et une bibliothèque de classes dans Visual Studio 2008.
J'ai ensuite un autre projet de site web en dehors de la solution de référence de la bibliothèque de classe. Je clic droit sur le dossier de la Corbeille ou d'un Projet et sélectionnez Ajouter une Référence, puis sélectionnez mon Projet de Bibliothèque de classes, il ajoute les 15 ou si les Dll de la bibliothèque de classe doit les sites bin, mais aucun de la .fichiers cs reconnaissons l'aide d'instructions.
using MyLibrary.MyFolder;
Il dit qu'il ne peut pas le résoudre, et ReSharper juste dit qu'il peut être retiré en toute sécurité car il n'est pas utilisé.
ReSharper peut reconnaître qu'il a besoin de la référence et suggère qu'il "Référence MyLibrary et l'utilisation Mondossier". Je ne suis pas sûr pourquoi elle suggère-je ajouter une référence j'ai déjà. Quand je vais à la suggestion, je reçois le message d'erreur
"Echec de référence du module. Sans doute, la référence va produire des dépendances circulaires entre les projets."
J'ai essayé d'aller vers les sites web de propriété des pages et la suppression de toutes les références et de le rajouter, mais il donne les mêmes erreurs. Des idées pourquoi cela ne fonctionne pas?
- Vérifier l' .net framework version de bibliothèque de classe et le projet auquel vous faites référence dans
Vous devez vous connecter pour publier un commentaire.
Aussi, vérifiez que la nouvelle solution de projets exécutés dans un cadre compatible pour le projet que vous essayez d'inclure. J'ai essayé d'inclure une référence à un projet 4.0 dans une de 3,5 projet.
J'ai trouvé comment résoudre ce problème (du moins pour moi). Pourquoi cela a fonctionné, je ne suis pas sûr, mais il l'a fait. (J'ai juste essayé contre un deuxième site web qui a été d'avoir le même problème et la solution suivante travaillé aussi, d'ailleurs).
J'ai essayé le nettoyage normal de projets et la reconstruction de, la fermeture de toutes mes instances de Visual Studio et de les redémarrer, même essayé de redémarrer mon ordinateur.
Ce qui s'est réellement travaillé a l'ouverture du projet dans Visual Studio, la fermeture de tous les onglets ouverts, puis de l'arrêter.
Avant j'avais laissé les onglets ouverts parce que je ne pense pas que c'était important (et je n'ai pratiquement jamais fermer les onglets que j'utilise).
Une possibilité est que la cible .NET Framework version de la bibliothèque de classe est plus élevé que celui du projet.
J'ai eu un problème similaire, seront tous mes références étant enculer par Resharper - La solution qui a fonctionné pour moi est d'effacer la Resharper Cache et redémarrer ensuite VS
outils->options->resharper->options-> général> cliquez sur le bouton effacer les caches et redémarrez VS
J'ai eu des problèmes similaires où VS serait construisent parfois et parfois pas. Après quelques recherches et tentatives, j'ai découvert que j'avais une référence ambiguë à une classe avec le même nom dans différentes bibliothèques ('FileManager'). Le projet qui ne serait pas construire ont été mes Tests d'Unité qui référence tous les modules dans ma solution. L'application de la référence à un module spécifique triés choses pour moi.
Mon point est: Plutôt que de blâmer ReSharper ou VS, il peut être une bonne idée de vérifier si il n'y a vraiment pas une sorte de référence circulaire en quelque sorte. Le plus souvent, les classes avec les mêmes noms dans les différents modules pourrait causer de la confusion et est souvent un symptôme d'une mauvaise conception (comme dans mon cas).
The type or namespace name 'A' does not exist in the namespace 'B'
. Notez qu'aucun des avertissements pour cette...Cela ressemble à un problème similaire avec ReSharper:
http://www.jetbrains.net/devnet/thread/275827
Selon un utilisateur dans le fil de forcer un build résout le problème (CTRL+Maj+B) après le premier build..
Sonne comme un problème avec ReSharper spécifiquement dans leur cas.. Avez-vous essayé de construction, indépendamment des avertissements et des faux erreurs?
Car ils sont les deux dans la même solution, au lieu d'ajouter une référence à la DLL, ajouter une référence à la bibliothèque de classes du projet lui-même (le dialogue Ajouter une Référence aura un onglet pour ça).Ahh, c'est une autre solution. Oubliée. Que diriez-vous d'essayer au lieu d'ajouter une référence au projet addding une référence à la DLL compilée de votre bibliothèque de classe. Le dialogue Ajouter une Référence a un onglet Parcourir qui le fait.
Si vous faites référence à des assemblages pour les projets qui sont dans la même solution, ajouter une référence de Projet (à l'aide de l'onglet "Projets") plutôt que de la navigation pour les dll dans le dossier \bin\Debug (ou \bin\Release) dossier (à l'aide de l'onglet "Parcourir"). Voir la capture d'écran ci-dessous. Parcourir uniquement pour le montage/fichier dll si il est considéré comme un assembly externe.
J'ai supprimé *.csproj.utilisateur ( resharper fichier) de mon projet, puis fermez tous les onglets et le rouvrir. Après que j'ai été en mesure de compiler mon projet et il n'y a pas de resharper avertissements.
J'ai eu ce problème. Il m'a fallu âge de comprendre. J'ai eu des gens au dessus de mon épaule pour l'aider. Nous avons reconstruit, nettoyés et redémarré Visual studio et ce n'est pas le résoudre. Nous avons enlevé et rajouté les références...
En vain.... Jusqu'à ce!
La solution à mon problème était que ma déclaration de classe a été orthographié de manière erronée.
Avant de commencer à me juger sévèrement, permettez-moi d'expliquer pourquoi il n'était pas stupide, et aussi pourquoi cette erreur pourrait être faite par les plus intelligents de programmeurs.
Depuis l'erreur a été dès le début du nom, il n'apparaît pas dans l'intellisense de la classe liste lorsque j'ai commencé à taper.
par exemple
Nom de la classe:
Message.cs
Déclaration:
Un coup d'œil et en petits caractères, Massage ressemble à de Message.
Tapant M répertoriés trop grand nombre de classes, donc j'ai tapé e, qui n'apparaissent pas dans l'erreur de frappe, ce qui donne l'impression que la classe n'a pas été ramassé par le compilateur.
J'ai eu un problème similaire dans VS 2010, lors de la création d'un projet de test pour une application MVC 2.
Les symptômes étaient identiques.
Le message de ReSharper est quelque peu trompeuse. Pendant un moment j'ai complètement ignoré ReSharper et il l'a fait le "manuel VS façon":
À ce stade, j'ai une erreur de compilation: je devrais avoir référencé le
System.Web.Mvc
assemblée dans mon projet de test (soupir). L'ajout de cette référence provoque le projet pour compiler. Le ReSharper questions demeurent, mais le ReSharper test runner fonctionne.Quand je redémarre VS, le ReSharper erreurs sont allés trop. Je ne suis pas sûr si le redémarrage est nécessaire - il suffit de fermer la .cs fichier peut être suffisant.
À partir de maintenant, quand je vois le ReSharper message
Je vais lire
Une autre solution possible que juste a fonctionné pour moi:
Si vous avez de l'Assemblée, qui renvoie à l'Assemblée B, qui référence un non-projet (externe) de l'assemblée X, et l'Assemblage B du code ne peut pas reconnaître que vous avez fait référence à X, puis essayez les étapes suivantes dans l'ordre:
Apparemment, contre la volonté de ne pas reconnaître une référence à un assembly externe dans un projet qui est une dépendance d'un autre projet qui a déjà des références externes. Par la mise en place des références à nouveau à partir de la base, vous remédier à cela. C'est juste très bizarre.
J'ai été confronté à ce problème, et je l'ai résolu par la fermeture de visual studio, la réouverture de visual studio, le nettoyage et la reconstruction de la solution. Cela a fonctionné pour moi.
Si l'utilisation de TFS, l'exécution d'un Get plus tard (récursif) ne fonctionne pas toujours. Au lieu de cela, je force un obtenir la dernière version en cliquant sur contrôle de code Source => Obtenir une version spécifique en cliquant ensuite sur les deux cases. Cette tendance à travailler.
Si cela ne fonctionne toujours pas alors de supprimer le fichier suo (en général dans le même lieu que la solution) et les forces de visual studio pour obtenir tous les fichiers à partir de la source (et par la suite de reconstruire le fichier suo).
Si cela ne fonctionne pas, alors essayez de fermer tous les fichiers ouverts et de fermeture de Visual studio. La prochaine fois que vous ouvrez Visual studio, il doit être fixé. Il y a un resharper bug est résolu de cette façon.
J'avais trébuché sur un problème similaire récemment. Je travaille dans Visual Studio 2015 avec Resharper Ultime 2016.1.2. J'ai essayé d'ajouter une nouvelle catégorie à mon code de base tout en essayant de faire référence à une classe d'une autre assemblée, mais Resharper jeter une erreur pour ce paquet.
Avec l'aide d'un collègue, j'ai compris que référencé dans la catégorie existe dans l'espace de noms global et n'était pas accessible à partir de la nouvelle classe depuis qu'il a été caché par une autre entité du même nom qui existait dans l'espace de noms courant.
L'ajout d'un 'global::' mot-clé avant de l'espace de noms requis m'a aidé pour faire référence à la classe en fait j'ai été à la recherche pour. Plus de détails sur ce qui peut être trouvé sur la page indiquée ci-dessous:
https://msdn.microsoft.com/en-us/library/c3ay4x3d.aspx
Après confirmation de la même version de asp.net a été utilisé. J'ai retiré le projet. nettoyer la solution et re-ajouté le projet. c'est ce qui a fonctionné pour moi.
Si les deux projets sont contenues dans la même solution, il sera plus adéquat si vous ajouter la référence pour le projet que vous avez besoin, pas la dll compilée.
Malheureusement la seule chose qui a fonctionné pour moi a été complètement effacer et recréer le projet de bibliothèque de classes, après avoir temporairement copié les fichiers de classe dans un autre endroit. C'est alors seulement que l'ASP.Net le projet web de reconnaître le
using
déclarations visées au projet de bibliothèque de classes. Ce fut avec Visual Studio 2010, et non pas à l'aide de ReSharper.J'ai eu le même problème. Ce qui a fonctionné pour moi, c'est que j'avais ajouté mal Bibliothèque de Classe à partir de visual studio. J'ai ajouté en utilisant la fonctionnalité de recherche de visual studio.
Ce que je devais faire était de Ajouter un Nouveau Projet > Visual C# > Bibliothèque de Classe. Et cette nouvelle bibliothèque de classe est la bonne, et peut maintenant être ajouté en tant que référence pour tout projet.
Vous pouvez oublié de ajouter une référence la bibliothèque de classe dont vous avez besoin pour l'importation.
À droite, cliquez sur la bibliothèque de classe dont vous voulez importer dans l' (qui contient de multiples importé des bibliothèques de classe), -->Add->Référence(sélection de Projets->Solution->sélectionnez la bibliothèque de classe de laquelle vous souhaitez importer à partir d'->OK)