web-dev-qa-db-fra.com

Références ambiguës avec exactement le même espace de noms

La classe RC n'est pas liée à une base de données, c'est une classe simple. La classe est à un seul endroit et n'est pas partielle. Le projet Aérochem.Domain dll compile parfaitement. 

Remarque: Si je sélectionne l'un des deux espaces de nom identiques dans le menu de correction rapide, cela ne fait rien.

Note2: Cela arrive à quelques classes (certaines sont liées à une base de données, d'autres non)

Y at-il une solution à ce problème ou un moyen de comprendre ce qui ne va pas?

enter image description here

47
Mathieu

J'ai eu le même problème. J'utilise ReSharper. La solution à mon problème ne consistait pas à nettoyer la solution, mais à supprimer le fichier suo-.

42
Michael Mairegger

En ce qui concerne la référence de tout futur utilisateur: Ce fil couvre quatre réponses alors que deux sont dans les commentaires. J'ai fait face au problème à plusieurs reprises, trois de ces réponses m'ont déjà aidé, alors si vous faites face au même problème, essayez l'une de ces solutions:

  • Nettoyez et/ou reconstruisez la solution puis analysez à nouveau les fichiers dans Resharper.
  • Redémarrez Visual Studio puis réanalysez
  • Supprimez la corbeille/dossier, puis réanalysez
  • (Apparemment, supprimer le fichier suo peut aussi aider, bien que je n’aie jamais eu à le faire et que je ne comprenne pas comment cela devrait aider)
  • Une combinaison des trois ci-dessus.

(Ce n'est pas vraiment une nouvelle réponse, c'est plutôt un commentaire sur la variété des réponses trouvées et des commentaires trouvés - c'est un wiki de communauté, alors n'hésitez pas à l'adapter si nécessaire)

11
chiccodoro

Pour les utilisateurs de ReSharper qui, comme moi, ne veulent pas supprimer le fichier *.suo de leur solution:

Effacez vos caches via: ReSharper -> Options -> Environment -> General -> Clear Caches!

 Clear ReSharper caches

Merci à AUSTX_RJL pour son commentaire à cette réponse . Je voulais donner plus de visibilité à ses précieuses informations.

10
Oliver

Le .dll était déjà dans mon dossier /bin.

Quand je l'ai supprimé, il s'est débarrassé de cette erreur.

4
Nathan Koop

J'ai eu ce problème et ReSharper a également été installé sur Visual Studio.

Print screen 1

Print screen 2

J'ouvre un ticket de bogue sur ReSharper tracker et l'équipe de développement m'a conseillé de faire:

Solution:

Ce problème peut être résolu en supprimant la Solution User Options (.Suo) File. Ce fichier est stocké dans la racine du projet mais est masqué. vous devez vérifier Folder Options-> View-> Show hidden files, folders, drives. et fermer Visual Studio si vous avez ouvert ce projet car il est utilisé par Visual Studio.

3
TotPeRo

J'ai eu ce problème dans un projet standard .NET (je l'appelle le projet hôte). L'espace de noms à l'origine du problème se trouvait dans un autre projet référencé (qui était également un projet standard .NET) dans la même solution.

J'ai tout fait: nettoyer, supprimer le cache resharper, fermer le fichier, supprimer .suo, supprimer les fichiers binaires. Rien ne semblait fonctionner.

Ensuite, j'ai converti le projet hôte en .NET Framework, puis le problème a disparu.

0
Sahin Ozsoy

Dans mon cas, j'ai référencé le projet X à l'intérieur de lui-même. Donc le problème n'était pas ReSharper (mais c'est ReSharper qui a ajouté la référence ...)

0
Guillermo Varini

Pour moi, c’est parce que j’avais référencé la DLL à la fois par référence de projet et par référence d’assemblage. La suppression de la référence Assembly a résolu le problème.

0
Mike Chamberlain

J'ai eu le même problème alors que deux paquets référencaient de manière ambiguë la même dll, et voici ce qui a fonctionné pour moi:

J'ai donné un alias name à l'un des packages (nommé Dapper.StrongName), en mettant les éléments suivants dans mon fichier .csproj:

  <Target Name="ChangeNameAlias" BeforeTargets="FindReferenceAssembliesForReferences;ResolveReferences">
    <ItemGroup>
      <ReferencePath Condition="'%(FileName)' == 'Dapper.StrongName'">
        <Aliases>AliasName</Aliases>
      </ReferencePath>
    </ItemGroup>
  </Target>

Et puis ajouté la namespace en tant que using AliasName::Dapper;

J'ai ajouté un post ici: Méthodes d'extension ambiguës

Voir articles apparentés:

0
Mayer Spitzer

Si la structure de votre projet contient plusieurs projets dans une solution, vous devez supprimer le contenu du dossier bin de chaque projet. Cela a résolu l'erreur à laquelle je faisais face.

0
Hedego

Je sais que c'est un problème assez ancien, mais peut-être que cela aidera quelqu'un. Si vous utilisez c # rasoir dans Asp.Net Core 2+, si vous rencontrez ce problème.

1) Copiez le contenu du fichier dans le bloc-notes.

2) Supprimez le fichier .cshtml.

3) Créez le fichier .cshtml avec le même nom.

4) Copiez le contenu du bloc-notes dans le nouveau fichier.

Je ne sais pas s'il s'agit simplement d'un bogue étrange ou d'une conséquence de la mise à niveau d'un projet de Core 1.0 à 2+, mais cela a finalement résolu le problème pour moi. C'était un problème pour moi dans Visual Studio 2017 et 2019.

0
Greg F.