Espace de noms n'est pas reconnu (même s'il est là)
J'obtiens cette erreur:
Le type ou le nom d'espace de noms 'AutoMapper' n'a pas pu être trouvée (vous manque une directive using ou une référence d'assembly?)
Le plus drôle, c'est que j'ai dans mon projet déjà:
Et c'est mon code:
using System.Collections.Generic;
using DataContract;
using SelectorDAL;
using AutoMapper;
namespace SpecimenSelect
{
public class SpecimenSelect : ISpecimenSelect
{
public SpecimenSelect()
{
SetupMaps();
}
private static void SetupMaps()
{
Mapper.CreateMap<SpecimenDetail, SpecimenDetailContract>();
}
L'autre qui est étrange c'est que j'ai deux autres projets dans ma solution à la fois l'utilisation AutoMapper et de référencement sont exactement les mêmes AutoMapper.dll fichier. Ils travaillent tous les deux parfaitement bien.
Voici une capture d'écran de l'un:
et ici, c'est que le code (qui compile très bien):
using System.Collections.Generic;
using AutoMapper;
using DataContract;
using SelectorDAL;
namespace PatientSelect
{
public class PatientSelect : IPatientSelect
{
public PatientSelect()
{
SetupMaps();
}
private void SetupMaps()
{
Mapper.CreateMap<Patient, PatientContract>();
Mapper.CreateMap<OrderedTest, OrderedTestsContract>();
Mapper.CreateMap<Gender, GenderContract>();
}
Les deux références semblent avoir les mêmes données sur les propriétés de la page.
Ce qui me manque?
J'ai essayé:
- De Redémarrer Visual Studio
- Référencement sans l'aide d'instruction (c'est à dire
AutoMapper.Mapper.CreateMap
) - Nettoyer et Reconstruire
D'autres idées?
- De référence est le chemin d'accès incorrect? Peut-être qu'il a été ajouté avec un chemin absolu, mais la DLL a depuis été déplacé?
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que votre projet n'est pas configuré pour utiliser le .NET Framework 4 Client Profile.
Vous pouvez vérifier/changer cela en cliquant-droit sur votre projet (pas la solution), sélectionnez Propriétés -> Application -> Cible cadre. Le framework cible est un menu déroulant sur la page.
De ce problème dans Visual Studio (j'irais même jusqu'à appeler ça un bug). AutoMapper nécessite des assemblages qui sont exclus de l' .NET Framework 4 Client Profile. Car votre projet est d'utiliser cette version du framework, il se casse.
Une erreur similaire va se propager vers le processus de construction de quand la .NET Framework version pour le projet auquel vous faites référence est plus élevé que le projet de renvoi. c'est à dire Un projet de ciblage 4.5 qui fait référence à un projet de ciblage 4.5.1 vous donnera ce même message d'erreur.
Il doit y avoir un meilleur message d'erreur lorsque cela se produit parce que il n'y a pas d'explication rationnelle pour expliquer pourquoi il ne serait pas construire tant que le message d'erreur vous dit de faire référence à un assembly vous avez clairement mentionnée.
Laissez-moi vous poser une question stupide: Pourrait-il y avoir deux automapper.dll fichiers? L'un avec un
AutoMapper
espace de noms et l'autre sans? Confirmer les chemins, dans les deux projets.J'ai aussi remarqué que l'ordre de la
using
commandes est différent. Il ne devrait pas, mais avez-vous essayé de les mélanger?Si votre classe ne compile pas, même si c'est dans le projet, vérifier ces:
J'ai résolu ce problème par un clic droit sur le dossier contenant les fichiers et de choisir Exclure Du Projet et ensuite, un clic droit à nouveau et en sélectionnant Inclure Dans le Projet (vous devez d'abord activer Afficher Tous les Fichiers pour rendre le dossier exclu visible)
J'ai un problème similaire avec les références de ne pas être reconnu dans VS2010 et les réponses aux présentes n'ont pas été en mesure de le corriger.
Le problème dans ma solution a été liée à l'extension de la voie où le projet référencé était situé. Comme je travaille avec SVN, j'ai fait une branche d'un référentiel de faire des essais et de la branche ont augmenté deux niveaux dans la structure de chemin d'accès, donc, le chemin est devenu trop long pour être utilisable dans windows. Ce ne jetez pas d'erreur mais ne reconnaissent pas l'espace de noms de la référence du projet. Quand j'ai corriger l'emplacement du projet d'avoir un petit chemin tout s'est bien passé.
Dans mon cas, référencé dans la dll a été construit en plus de la version de .Net Framework. Après j'ai ajouté la référence, je pourrais l'utiliser. Mais dès que j'ai fait construire, le "manque de référence' erreur apparaîtra. J'ai actualiser la dll erreur va aller, mais il ne serait jamais construire. Ce post m'a fait vérifier la version de framework, et donc j'ai pu le résoudre par la construction du projet référencé dans la même version.
Ce doit être la solution la plus simple si tous les autres réponses ne vous aide pas
J'étais à la recherche de ce qui ne va pas avec ma configuration parmi les réponses, Essayé tous - aucun n'a fonctionné, Puis j'ai réalisé Visual Studio 2018 a été développé par Microsoft. J'ai donc fait ce que la plupart des gens le font,
Redémarré Visual Studio
Et Il a travaillé
Peut-être le projet est de type tableau est dans un état incorrect. Je voudrais essayer de supprimer/ajouter la référence et si cela ne fonctionne pas, en créer un autre projet, importer mon code, et voir si cela fonctionne.
J'ai couru ce tout en utilisant VS 2005, on aurait attendre MS d'avoir résolu le problème en ce moment..
La question a déjà été attribué, mais il y a d'autres détails ne sont pas encore décrite qui doivent être vérifiés.
Aussi, j'ai eu ce problème, où le projet B est référencé dans le cadre du même projet, mais l'espace de noms de projet B n'a pas été reconnu dans le projet de l'A. Après quelques recherches, j'ai trouvé mon chemin était trop long. En réduisant le chemin de projets (A et B) les références sont devenues visibles et disponibles.
J'ai testé cette théorie par la création d'un projet C, à une bien moindre chemin de profondeur. J'ai référencé le projet C projet A. Les références a correctement fonctionné comme prévu. J'ai ensuite retiré le projet C de la solution, simplement déplacé projet C à une profondeur de chemin, le même que le projet B, et a ajouté projet C retour à la solution, et essayé de compiler. J'avais donc aucune visibilité pour le projet C objets plus longtemps.
Dans mon cas, j'avais copié un classlibrary, et ne change pas le "Nom de l'Assembly" dans les propriétés du projet, si une DLL est d'écraser les autres...
J'ai fait face à un problème similaire de l'espace de noms/méthode n'est pas trouvé lors de l'exécution, bien qu'il était très bien lors de la compilation, et la raison semble être que l'assemblée, je faisait référence a été déployé à GAC et, depuis lors, a été changé, donc quand j'ai fait référence à l'assemblée dans Visual Studion il a été à l'aide de la plus récente, mais au cours de l'exécution de la version bof GAC a été utilisé.
Dans mon cas, j'ai obtenu l'erreur que dans VS 2015. Lors de l'ouverture du projet dans VS en 2017, l'erreur a disparu.
Fou. Je sais.
Essayé toutes les options ici. En redémarrant, le nettoyage, la vérification manuelle généré des Dll (ce qui est d'une valeur inestimable pour comprendre si c'est bien toi qui a foiré).
Je l'ai eu à travailler par le réglage de la Verbosité de MSBuild pour "Détaillé" dans les Options.
Cette question a déjà été répondu par le posteur d'origine, mais dans le cas où quelqu'un rencontre ce dans un MS-projet de Test:
à partir de Visual Studio, cliquez sur le menu Test -> Paramètres de Test -> valeur par Défaut de l'Architecture du Processeur et de s'assurer que l'architecture correspond à celle de l'autre assemblée que vous faites référence. Si l'autre assemblée est de 64 bits et vos paramètres de test sont x86, vous pouvez rencontrer les symptômes que l'affiche originale avait.
Je travaillais sur Xamarin projet et comme toujours, la suppression de dossier obj et de la reconstruction de résoudre mon problème, l'espace de noms my VS n'a pas été reconnaissant s'agit d'un code dans mon propre projet BTW