Je souhaite tester la classe principale d'un plugin en référençant directement le projet de plugin et en instanciant la classe de plugin. Lorsque je crée un projet d'application console de test et que j'ajoute une référence de projet au projet de plug-in, j'obtiens une icône d'avertissement (triangle jaune avec point d'exclamation) à côté de la référence dans la liste des références.
Lorsque j'ajoute à la place une référence à la DLL, la sortie de génération d'assembly du plugin, je ne reçois aucun avertissement. Qu'est-ce que cet avertissement pourrait essayer de me dire?
.net
mef
project-reference
ProfK
la source
la source
Réponses:
Comme mentionné dans les commentaires de la question, des versions différentes de .NET Framework entre les projets peuvent provoquer cela. Vérifiez les propriétés de votre nouveau projet pour vous assurer qu'aucune version par défaut différente n'est utilisée.
la source
Rencontré le même problème avec une application Web ASP.Net et deux projets de classe de bibliothèque qui devaient être référencés dans l'application Web. Je n'avais aucune information fournie sur la raison de l'échec de la construction et les références n'étaient pas valides.
La solution était de s'assurer que tous les projets avaient le même cadre cible:
Dans Visual Studio 2015 - Projet Clic droit> Propriétés> Application> Framework cible
Enregistrer, nettoyer et reconstruire la solution. Les références du projet ne devraient plus apparaître comme des avertissements jaunes et la solution se compilera.
Mon application Web ciblait .Net 4.5 tandis que les deux autres projets de classe de bibliothèque dépendants ciblaient .Net v4.5.2
la source
Pour les deux (ou tous) les projets que vous souhaitez utiliser ensemble:
Faites un clic droit sur le projet> Propriétés> Application> Framework .NET cible
Assurez-vous que vos projets (ou tous) utilisent la même version du framework .NET.
la source
Assurez-vous que toutes les versions sont identiques pour chaque projet, cliquez sur chaque projet et voyez la version ici Projet> Propriétés> Application> Framework .NET cible
une. Allez dans Outils> Nuget Package Manager> Package Manager Console Type Update-Package -Reinstall (si cela ne fonctionne pas, passez à 2.b )
b. C'EST CRITIQUE MAIS LA PLUS GRANDE POSSIBILITÉ QUI FONCTIONNERA . Supprimez <Cible> Peut-être avec plusieurs lignes </ Cible> qui se trouvent généralement dans la partie inférieure de .csproj.
Enregistrez, chargez et créez la solution.
la source
Réinstallez tous les packages dans tous les projets de la solution actuelle:
la source
Assurez-vous que les projets ciblent la même version du framework . La plupart du temps, la raison en est que le projet en cours (où vous ajoutez la référence d'un autre projet) pointe vers une version de framework .net différente des autres .
la source
Vérifiez NETFramework de la DLL référencée et du projet où vous ajoutez la DLL. Ex: DLL ==> supportedRuntime version = "v4.0" Project ==> supportedRuntime version = "v3.0"
Vous obtiendrez une icône d'avertissement. Solution: assurez la cohérence de la version de la dll.
la source
Pour moi, j'ai rencontré ce problème lors du référencement d'une bibliothèque de classes .NET Standard 2.0 dans une application console .NET Framework 4.7.1. Oui, les frameworks sont différents, mais ils sont compatibles (.NET Standard est censé fonctionner avec .NET Core et .NET Framework.) J'ai essayé de nettoyer, reconstruire, supprimer et lire la référence du projet, etc ... sans succès . Enfin, la fermeture de Visual Studio et la réouverture ont résolu le problème.
la source
Cela fait longtemps que cette question n'a pas été posée, mais si quelqu'un est toujours intéressé - j'ai récemment rencontré des icônes similaires. Je compilais un projet C # .net à l'aide de VS 2008. J'ai trouvé que VS ne pouvait pas localiser les assemblys pour ces références. Lorsque j'ai double-cliqué, VS a actualisé les références et supprimé les icônes de certaines de ces [EDIT: qu'il pourrait MAINTENANT localiser]. Pour les références restantes, j'ai dû compiler les assemblages respectifs.
la source
Ajoutant mes 2 cents à la réponse @ kad81,
Accédez à Visual Studio -> BUILD -> Configuration Manager
Dans le menu déroulant "Active Solution Platform" en haut à droite (le mien est VS 2012), s'il s'agit de "Mixed Platforms", remplacez-le par la plate-forme appropriée en fonction de vos assemblages tiers de référence.
Ensuite, dans chacun des projets de la liste, assurez-vous de sélectionner la même plate-forme pour tout le projet. (si x86 n'existe pas, sélectionnez "", vous pouvez alors sélectionner "x86".)
Reconstruisez d'abord les projets de bibliothèque, puis faites référence aux projets. J'espère que cela t'aides.
la source
Essayez de fermer et d'ouvrir VS.
Cela semble idiot, mais après 1 heure à suivre ce qui précède et à trouver que tout allait bien. J'ai redémarré VS 2017 et les problèmes ont disparu.
la source
Dans le noyau Asp.net, il affiche parfois une alerte si vous modifiez l'espace ou le nom du projet. Pour supprimer ce type d'alertes, il vous suffit de décharger le projet et de le charger à nouveau. Si le problème persiste, cela signifie que vous ne pouvez pas trouver la référence de votre assemblage.
la source
J'avais ces icônes pour une raison différente. Nous avons une grande solution pour tous nos projets (près de 100). J'ai fait une sous-sélection des projets qui m'intéressaient et j'ai fait une nouvelle solution. Cependant, les références où le projet fait référence au lieu de références aux DLL compilées ....
Après quelques recherches, j'ai trouvé ce lien sur GitHub qui explique que c'est un nouveau comportement dans VS2015.
Sur la page GitHub, ils expliquent une solution de contournement pour convertir les références de projet en références binaires.
la source
Pour corriger certaines choses qui ne fonctionnent pas, il est judicieux de les supprimer parfois certaines bibliothèques, comment cela ne semblerait-il pas bizarre?
Quoi qu'il en soit, je pense que le problème est trop large et pourrait être causé par différents facteurs , alors je veux partager ma situation / solution.
J'ai eu un projet (apporté par le client) avec les bibliothèques Xamarin Forms et Telerik. La chose était en général liée aux composants, dont les bibliothèques ne sont pas incluses dans le dossier packages, ni disponibles via Nuget (celles payantes).
L'ensemble des références du projet étaient "jaunes", cela avait l'air horriblement et effrayant.
La solution consistait simplement à supprimer ces références Telerik (y compris quelques contrôles dans le code qui utilisaient cela). Juste après cela, toutes les références ont comme par magie leur couleur grise normale commune et les erreurs ont (pour la plupart) disparu.
"Surtout" - car les messages d'erreur "tout rouge" concernant "l'élément n'est défini nulle part" se produisent parfois encore. C'est bizarre et apporte des inconvénients, mais je peux toujours compiler et exécuter le ou les projets: il suffit de nettoyer la solution, de redémarrer Visual Studio, de prier un peu, de nettoyer à nouveau, de supprimer les dossiers obj / bin, de redémarrer à nouveau, et fonctionne bien.
L'essentiel est de supprimer les références aux bibliothèques non disponibles , car les messages d'erreur disent absolument autre chose. (Par exemple, quelque chose comme "Xamarin.Build.Download.XamarinDownloadArchives introuvable ou ne trouve pas quelque chose", etc., mais cela signifie peut-être que vous n'avez pas de références disponibles.
Ensuite, supprimez le dossier des packages, rechargez / rouvrez le projet / la solution, allez dans "Gérer les packages Nuget" et cliquez sur le bouton "Restaurer".
la source
En utilisant Visual Studio 2019 avec tous les projets ciblant .Net Core 3.1, la solution était de:
la source
J'ai également rencontré le même problème mais mon cas était un peu différent de ceux ci-dessus. J'ai essayé d'ouvrir un projet créé sur un autre ordinateur. J'ai constaté que le chemin d'accès au dossier de package n'est pas mis à jour lorsque vous ajoutez une référence, donc le redémarrage de VS, la modification de la version .NET ou toute recommandation mentionnée ne résout pas le problème. J'ai ouvert le fichier csproj dans notepad ++ et corrigé tous les chemins d'accès relatifs au dossier packages. Ensuite; tous les avertissements ont disparu. J'espère que ça aide.
la source
dans VS 2017 Faites un nettoyage puis construisez
la source
Merci à tous pour l'aide. Voici une ventilation de la façon dont j'ai résolu mon problème:
Faites un clic droit sur votre projet> Propriétés
Sous Application, modifiez le Framework cible. Dans mon cas, ImageSharp utilisait .Net 4.6.1. Vous pouvez le trouver dans votre packages.config.
Accédez aux références de votre projet. Vous remarquerez que SixLabors a un triangle jaune. Vous devez mettre à jour le package NuGet.
Cliquez avec le bouton droit sur Références> Gérer les packages NuGet.
Mettez à jour SixLabors.
Vous pouvez avoir de légères mises à jour de code (voir ci-dessous) mais cela a résolu mon problème.
Convertir ImageSharp.Image en ImageSharp.PixelFormats.Rgba32?
la source
Dans Visual Studio 2019, l'un de mes projets cible framework était .net core mais il faisait référence à un autre projet dont le framework cible était .net standard. J'ai changé tous les projets pour référencer la norme .net et les icônes ont disparu. Pour voir quel est votre projet, cliquez dessus avec le bouton droit de la souris, puis cliquez sur Propriétés et regardez Framework cible. Vous pouvez également cliquer normalement sur le projet lui-même et regarder la balise <TargetFramework> sous <PropertyGroup>
la source
Dans une solution multi-projets, si toutes les autres choses ont échoué ... Sur le projet de démarrage, vérifiez. Dépendances-> Assemblys et voyez si le projet référencé erroné est là. Retirez-le et reconstruisez.
la source