Comment faire en sorte que ReSharper réévalue sa mise en évidence de référence d'assemblage

184

Je crée un modèle de projet Prism et le modèle fonctionne très bien. Mais après avoir créé un projet avec le modèle, certains des fichiers ressemblent à ceci:

Mauvaises références

Malgré les apparences, tout va bien.

Si je fais une reconstruction tout, je vois que la solution se construit sans erreur:

Reconstruit

Mais tout reconstruire ne supprime pas les "erreurs" qui s'affichent dans la fenêtre de l'éditeur. (Notez que la fenêtre d'erreur réelle n'affiche aucune erreur.)

Je peux nettoyer, reconstruire, fermer et ouvrir des fichiers, et cela ne résoudra pas la mise en évidence.

Cependant, si je ferme la solution et la rouvre, tout va bien :

Fonctionne après le rechargement

Ma question:

Idéalement, il y aurait un moyen pour mon modèle ou mon IWizard de dire à ReSharper de recharger les références pour la mise en évidence.

Je sais que je peux éteindre puis rallumer ReSharper et cela résoudra le problème, mais je préfère ne pas le faire.

Existe-t-il une commande ReSharper qui actualise simplement ces éléments?

Vaccano
la source
Utilisez-vous ReSharper?
John Saunders
@JohnSaunders - oui, 5.1
Vaccano
J'ai vu ReSharper faire cela, donc c'est peut-être un bogue ReSharper, pas un bogue VS. Je viens de voir cela avec la version 6.1.
John Saunders
@JohnSaunders - J'ai confirmé qu'il s'agissait d'un problème ReSharper. J'ai édité ma question pour la recibler vers ReSharper. Merci de m'avoir pointé dans la bonne direction!
Vaccano
Quelles versions de Prism, WPF / SL / WinPhone utilisez-vous dans votre projet?
Jura Gorohovsky

Réponses:

216

À l'exception de la réinstallation, le seul moyen de vider correctement les caches est de supprimer les fichiers manuellement de votre répertoire AppData.

Supprimez le dossier de solution qui vous pose problème aux emplacements suivants:

  • %LOCALAPPDATA%\JetBrains\ReSharper\v7.1\SolutionCaches\
  • %LOCALAPPDATA%\JetBrains\Transient\ReSharperPlatformVsXX\vXX\SolutionCaches\ pour les versions plus récentes.

Notez que les numéros de version dans les chemins peuvent être différents selon la version de ReSharper installée.

Le XXin vXXet VsXXreprésente n'importe quel nombre, car il peut y avoir plusieurs dossiers dans lesquels le cache de solution est stocké.

iggymoran
la source
8
Ce chemin peut être différent selon la configuration de vos caches. (Voir Resharper> Options> Général)
Nameless One
1
Assez juste - mais cela résout définitivement le problème auquel vous êtes confronté (et pas seulement vous ...)
Peter Munnings
2
La réponse est correcte. Fermez toutes vos instances de Visual Studio, supprimez% LOCALAPPDATA% \ JetBrains \ ReSharper \ [ version_installée ] \ SolutionCaches.
Houman
3
@Joel dans ReSharper 9, avec l'introduction de la plate-forme ReSharper, elle a été déplacée vers %localappdata%\JetBrains\Transient\ReSharperPlatformVs12\v01\SolutionCaches(comme @brgerner le mentionne , vous pouvez cliquer sur le bouton Effacer les caches avant de suivre cette voie)
bdukes
7
Vous pouvez utiliser Resharper -> General -> Clear Caches pour effacer les caches quel que soit votre emplacement de cache. Vous devrez redémarrer Visual Studio après avoir vidé votre cache
Christopher Haws
98

Essayez de décharger puis de recharger le projet.

Pour décharger le projet, cliquez avec le bouton droit sur le projet dans l'explorateur de solutions et sélectionnez Unload Project. Ensuite, cliquez à nouveau avec le bouton droit sur le projet et sélectionnez Reload Project.

Le problème continue de se produire occasionnellement avec les dernières versions de ReSharper, mais le correctif semble fonctionner pour chaque version.

zastrowm
la source
On dirait que le rechargement provoque une nouvelle analyse du resharper. Cela me semble plus facile que de rechercher des caches dans l'explorateur de fichiers.
testpattern
69

Vous pouvez essayer de vider le cache ReSharper via le menu ReSharperOptionsEnvironnement / Général → bouton Clear Caches.

Brgerner
la source
1
Hélas, cela n'a toujours pas résolu le problème ... Merci pour l'idée.
Vaccano
23
Après cela, vous devez redémarrer Visual Studio. Ensuite, cela fonctionnera.
Felix C
3
Cela n'a pas fonctionné pour moi, même après le redémarrage de Visual Studio. Merci cependant.
Matt
Cela m'est arrivé après avoir rétrogradé un paquet nuget, puis mis à jour à nouveau. Utilisé cet indice pour corriger.
Guillaume Perrot
Fonctionne mieux si vous fermez Visual Studio, puis faites msbuild yourSolution.sln / t: nettoyez puis nettoyez tous les caches de resharper, enregistrez puis rouvrez votre solution.
John-Philip
14

Cela a fonctionné pour moi. Il n'est pas nécessaire de recharger les projets. Vous pouvez le faire à partir de Visual Studio.

  1. Effacez le cache ReSharper via ReSharper , Options , Général , cliquez sur « Effacer les caches ».

    Options de réaffectation

    Resharper Clear Caches

  2. ReSharper , Windows , sélectionnez « Erreurs de solution ». Cela lancera la fenêtre Erreurs de solution. En haut de cette fenêtre, cliquez sur le bouton « Réanalyser les fichiers avec des erreurs / avertissements ».

    ResharperWindows

    Réanalyser les fichiers avec des erreurs

Donal
la source
1
A travaillé avec R # 10.0.2, sans avoir à redémarrer VS.
Seb T.23
1
Cela a fonctionné pour moi, même si j'ai dû redémarrer VS
Rory McCrossan
6

Ouvrez ReSharper - Options - Environnement - Général , faites défiler jusqu'à Accès Msbuild et sélectionnez Obtenir les données de msbuild après chaque compilation .

Cela a fonctionné pour moi, en utilisant ReSharper 10.0.1 avec ReSharper Build.

Winetradr
la source
J'ai également nettoyé la solution et la reconstruire. Ensuite, je peux revenir à l'accès Msbuild précédent lorsque cela fonctionne
znn
5

Accédez à ReSharper → WindowsFenêtre des erreurs de solution et vous obtiendrez un aperçu des erreurs de votre solution. Là, vous pouvez cliquer sur le bouton Reanalyze Files With Errors.

Si vous le souhaitez, vous pouvez lui attribuer un raccourci. Allez dans OutilsOptionsClavier et recherchez «Réanalyser». Vous pouvez attribuer un raccourci clavier à «ReSharper_ErrorsView_ReanalyzeAllFiles» ou «ReSharper_ErrorsView_ReanalyzeFilesWithErrors».

Peter
la source
1
Je suis confronté à un problème similaire et cela ne résout pas.
Tilak
J'ai juste fatigué ça aussi. Cela n'a pas résolu le problème. Resharper a toujours marqué des erreurs, mais tout s'est bien compilé. Le déchargement et le rechargement du projet est la seule solution de contournement que je puisse trouver. (Bien qu'on me dise que c'est corrigé dans la dernière version de resharper)
Vaccano
Très utile! J'ai eu le même problème avec VS 2019 et Resharper 2019.3, mais en fait ce n'était PAS un problème. Le fait que le projet se génère ne signifie pas nécessairement que Resharper ne trouvera pas d'erreurs. Dans mon cas, il y avait des erreurs dans certains fichiers de test xml de mon projet NUnit. Cette solution a rapidement trouvé les fichiers
shelbypereira le
3

J'ai un problème similaire avec les packages nuget et j'ai trouvé une solution de contournement très étrange: sélectionnez la référence dans la liste de référence du projet et appuyez sur 'F4'. L'apparence de la fenêtre des propriétés amène le resharper à réévaluer les références disponibles ...

ironique
la source
1
Je n'ai pas eu de chance avec tous les conseils de "cache propre". Ensuite, j'ai essayé cela et cela a presque aidé. Ma solution de contournement était: Trouvez le projet avec le problème - ouvrez les références - sélectionnez la référence qui a été signalée comme inconnue par R # - Appuyez sur F4 - modifiez quelque chose dans les propriétés, comme "copier local de vrai à faux, puis revenir à vrai"
Chrigl
J'ai eu une solution similaire. J'ai dû supprimer la référence de mon projet et la rajouter. Aucune des autres solutions n'a fonctionné pour moi.
CodeHxr
2

Je ne suis pas certain que ce soit la même cause profonde, mais j'ai découvert que, dans les options de ReSharper, "Utiliser MsBuild" était coché et que toutes sortes d'erreurs erronées étaient signalées. Essayez de vérifier "ReSharper-> Options-> Général" et voyez dans quel état se trouve l'archivage "Use MsBuild".

Marstov
la source
2

Allez dans ReSharper → OptionsGénéral et cliquez sur Clear Caches. (J'ai 8.2, donc si vous êtes sur une version différente, cela peut être ailleurs.)

Vous devrez ensuite rouvrir votre solution et ReSharper réanalysera tout.

BJury
la source
A travaillé pour moi, merci. J'avais des tonnes de projets dans ma solution et je ne voulais pas les décharger / recharger tous un par un: p Je ne sais pas pourquoi vous avez obtenu un vote défavorable.
Karl Patrik Johansson
1

Exécutez le code suivant dans une invite de commandes. Ensuite, résolvez le problème ReSharper ...

del /q/f/s %TEMP%\*
Muhammed Eassa PN
la source
0

La seule chose qui m'a aidé est: Unistall et ensuite réinstaller Resharper (la réparation n'a pas fonctionné)

Visual Studio 2010 SP1, ReSharper 7.1.3000.2254

Lu55
la source
0

C'est un problème étrange, et il est toujours d'actualité dans la version 8.2.3 (build 8.2.3000.5176).

Ce qui semble fonctionner pour moi de manière cohérente est de reconstruire une solution.

Dans VS 2013: Build -> Rebuild Solution

Andacious
la source
0

Si les solutions ci-dessus ne fonctionnent pas, vous pouvez essayer de réinitialiser le type de sortie du projet. Cela semble résoudre le problème sur VS2015 Update 1 avec ReSharper 10.1

Svenkle
la source
0

Pour moi, rien de ce qui précède n'a fonctionné. J'ai dû installer la nouvelle version de Resharper qui prend en charge NET Core 2.0.

Tommy Ivarsson
la source
0

Resharper signalait une référence manquante dans un projet qui était inclus dans les références. Après avoir essayé les autres solutions ici, j'ai désactivé Resharper via les instructions de cette réponse et j'ai constaté que l'intellisense de Visual Studio signalait toujours les mêmes erreurs.

À ce stade, j'ai réalisé qu'il y avait probablement quelque chose qui n'allait pas avec le fichier de projet. Je soupçonnais qu'une référence avait été subtilement corrompue lors d'une fusion. 1

J'ai supprimé la référence qui se plaignait de ne pas pouvoir la trouver et l'ai ré-ajoutée. Les erreurs de Visual Studio ont disparu. Ensuite, j'ai réactivé Resharper, et il ne se plaignait plus d'erreurs dans mon projet.


  1. Lorsque j'ai vérifié ce qui avait changé dans le fichier csproj, ce que j'ai trouvé était un supplément </Compile>qui n'avait pas de balise ouverte correspondante. C'était donc effectivement une erreur de fusion.
Katie Kilian
la source