Mam problem z programem Visual Studio w rozwiązaniu C #. Wyświetla całkowicie losowe błędy, ale projekty się kompilują. W tej chwili mam 33 pliki z błędami i widzę w nich wszystkie czerwone linie.
Próbowałem wyczyścić / odbudować rozwiązanie, zamknąć program Visual Studio, a nawet ponownie uruchomić komputer. Upewniłem się również, że wykonałem kroki opisane w Debugowaniu, nawet przy błędach kompilatora w Visual Studio. Mogę modyfikować pliki .cs i widzę zmiany w rozwiązaniu.
Czy ktoś ma pojęcie o tym, dlaczego to robi?
c#
visual-studio
syntax-error
resharper
intellisense
GammaOmega
źródło
źródło
Odpowiedzi:
Jeśli masz ReSharper, spróbuj opróżnić pamięć podręczną ReSharper:
oraz wyłączanie i ponowne włączanie ReSharper:
źródło
Wyczyszczenie pamięci podręcznej Resharpera nie pomogło w moim przypadku, próbowałem zawiesić / przywrócić , a także naprawić Resharper, używając najnowszego pobrania ze strony JetBrains - żadne z nich nie pomogło. Jest to po tym, jak spróbowałem zamknąć / ponownie otworzyć VS, ponownie uruchomić komputer, powtórzyć, zbudować / odbudować i ich kombinację.
Ciekawe, że zawieszenie Resharpera wydawało się rozwiązać problem po 2 restarcie VS, ale wróciło po włączeniu Resharpera <- Próbowałem wykonać tę sekwencję 2-3 razy, aby zapewnić wzorzec.
W każdym razie nadal miałem problemy, gdy znalazłem ten artykuł:
Więc usunąłem ukryty plik .SUO na tym samym poziomie folderów z rozwiązaniem i to magicznie rozwiązało wszystkie czerwone.
Uwaga - w programie Visual Studio 2015 plik .SUO znajduje się w ukrytym folderze .vs / [nazwa_rozwiązania] / v14 .
źródło
tldr; Zwolnij i ponownie załaduj problematyczny projekt.
Kiedy mi się to zdarza, próbowałem zamknąć VS i otworzyć go ponownie. To chyba działało około połowy czasu. Gdy to nie zadziałało, zamknąłem rozwiązanie, usunąłem plik .suo (lub cały folder .vs) i ponownie otworzyłem rozwiązanie. Do tej pory zawsze działało to dla mnie (ponad 10 razy w ciągu ostatnich 6 miesięcy), ale jest to nieco żmudne, ponieważ niektóre rzeczy są resetowane, takie jak tryb kompilacji, projekt uruchamiania itp.
Ponieważ zwykle jest to tylko jeden projekt, który ma problem, po prostu próbowałem rozładować ten projekt i załadować go ponownie, i to zadziałało. Rozmiar mojej próbki wynosi tylko 1, ale jest znacznie szybszy niż dwie pozostałe opcje, więc być może warto spróbować. Podejrzewam, że to działa, ponieważ zapisuje do pliku .suo i być może naprawia uszkodzoną część, która była przyczyną problemu.
Uwaga: wydaje się, że działa to dla VS 2019, 2017 i 2015.
źródło
Wyczyściłem rozwiązanie, zamknąłem VS, ponownie go otworzyłem, zbudowałem rozwiązanie, a czerwone nierozwiązane linie zostały wyczyszczone i kompilacja powiodła się.
źródło
Odkryłem, że zdarza się to często podczas korzystania z Git w Visual Studio 2017, zmieniając gałęzie, w których występują zależne zmiany kodu . Mimo że projekt zakończy się powodzeniem, na liście błędów pozostaną błędy.
Te błędy są często problemami z przestrzenią nazw i brakującymi odniesieniami, nawet jeśli istnieje odwołanie do biblioteki.
Rozwiązać:
źródło
Wypróbowałem wszystkie 6 opcji, nic nie działało dla mnie. Poniższe rozwiązanie rozwiązało mój problem.
Zamknij VS. Usuń ukryty folder „.vs” obok pliku rozwiązania. Uruchom ponownie VS i załaduj rozwiązanie.
źródło
Miałem taki problem, że Intellisense nie rozpoznawał istnienia jednego projektu (wiele błędów „nie można znaleźć tego typu”, „ta przestrzeń nazw nie istnieje” itp.).
Usunięcie i ponowne dodanie odwołania do projektu we wszystkich projektach odwołujących rozwiązałoby problem, ale podstawową przyczynę można naprawić, edytując plik .proj projektu powodującego problem.
W górnej części „brakującego” projektu .csproj znajduje się element:
i we wszystkich projektach referencyjnych pliki .csproj były referencjami projektów:
Odnośny identyfikator GUID nie był zgodny z identyfikatorem GUID projektu. Zastąpienie
{GUID}
powyższego{ANOTHER-GUID}
rozwiązaniem rozwiązało problem bez konieczności przeglądania każdego projektu referencyjnego.źródło
Oto zbiór popularnych odpowiedzi. Poproś OP o odpowiedź, jeśli pomogło ci:
Opcja 1: czyszczenie, kompilacja i odświeżanie ( opcja @ Mike Fuchs )
Jak wspomniano @Mike Fuchs , wypróbuj następujące operacje:
i wybierz projekt, o którym mowa, i kliknij przycisk odświeżania:
Opcja 2: Wyczyść, zamknij, uruchom ponownie i skompiluj ( opcja @Pixel )
Jak wspomniano w @Pixel , wypróbuj następującą sekwencję operacji:
Opcja 3: Wyczyść pamięć podręczną ReSharper ( opcja @ GammaOmega )
Jeśli masz ReSharper, spróbuj opróżnić pamięć podręczną ReSharper:
oraz wyłączanie i ponowne włączanie ReSharper:
Opcja 4: Usuń plik .suo ( opcja @ Neolisk )
Jak wspomniano w @Neolisk , usunięcie pliku .suo może rozwiązać problem. W przypadku programu Visual Studio 2015 plik znajduje się w:
A dla Visual Studio 2017:
Pamiętaj, że katalog .vs jest ukryty.
Opcja 5: rozładuj i załaduj ponownie projekt ( opcja @TTT )
Jak wspomniano @TTT , spróbuj zwolnić projekt, który powoduje problemy:
I ponownie go ładuję
Opcja 6: Usuń i dodaj odwołanie do Microsoft.CSharp ( opcja @Guilherme )
Jak wspomniano w @Guilherme , spróbuj usunąć i dodać odniesienie do „Microsoft.CSharp” z projektów, które mają problemy.
źródło
Usuń ścieżkę ukrytego pliku = Twoje rozwiązanie \ .vs \ Twoje rozwiązanie Nazwa \ v15 \ .suo
źródło
dla VS-2017, usuwanie folderu .vs działało dla mnie.
źródło
Zauważyłem, że czasami podczas zmiany gałęzi git program Visual Studio (2017) nie rozpoznaje typów z niektórych plików dodanych w drugiej gałęzi. Usunięcie folderu .vs rozwiązuje go, ale także niszczy wszystkie ustawienia obszaru roboczego. Ta sztuczka wydaje mi się dobrze działać:
Powoduje to, że Intellisense analizuje plik, który pominął podczas przełączania gałęzi.
źródło
Poniższe rozwiązanie działało dla mnie
1 - Zamknij VS
2 - Usuń folder .vs
3 - Otwórz VS
4 - Zbuduj rozwiązanie
źródło
Być może próbujesz zresetować pamięć podręczną Intellisense. Miałem podobny problem w Visual Studio 2012 podczas pracy w dużym projekcie z wieloma częściowymi definicjami klas. Zmniejszenie częściowych rozwiązało problem częściowo, wyczyszczając także pamięć podręczną intellisense - na chwilę.
źródło
Czasami muszę wykonać niestandardowe czyszczenie, przechodząc przez wszystkie projekty i ręcznie usuwając foldery „bin” i „obj”. Aby zobaczyć je w Visual Studio, musisz włączyć ukryte pliki i foldery dla każdego projektu. Po zakończeniu przebuduj rozwiązanie.
źródło
Usunięcie
.vs
folderu rozwiązało mój problem.Ale zresetował również bieżące ustawienia mojego rozwiązania w VS. Podobnie jak moje rozładowane projekty w rozwiązaniu zostały ponownie załadowane, a wszystkie przypięte i otwarte dokumenty zostały również zamknięte po ponownym uruchomieniu VS.
źródło
0 - Kliknij prawym przyciskiem myszy Rozwiązanie i wyczyść rozwiązanie
1 - Zamknij VS
2 - Usuń plik .suo projektu
3 - Otwórz VS
4 - Zbuduj rozwiązanie
źródło
Mój kolega doświadczył dzisiaj tego problemu. Wypróbowaliśmy wiele rekomendacji tutaj i żadne nie działało, oprócz rozwiązania opisanego poniżej.
Problem:
Projekt buduje się dobrze, ale Intellisense nie rozpoznaje niektórych typów i oznacza określone
using
instrukcje jako nieprawidłowe.Rozwiązanie:
Zmień „Platformę rozwiązań” (w VS 2017 jest to menu rozwijane obok listy rozwijanej Konfiguracja rozwiązania i ma wartości takie jak x86, x64, AnyCPU, platformy mieszane itp.) Na AnyCPU .
Platforma dla twojego projektu może się różnić, ale wydaje się, że niektóre odniesienia mogą nie być prawidłowe dla wszystkich platform.
źródło
W moim konkretnym przypadku było to odniesienie do usługi, które inny programista połączył z głównym oddziałem. Co było doskonale w porządku, z wyjątkiem tego, że wyróżnienie składni nie rozwiązało wygenerowanej klasy usługi, a źródło zostało podkreślone na czerwono. Czyszczenie, przebudowa, ponowne uruchomienie nic nie zrobiło.
Wszystko, co musiałem zrobić, to odświeżyć numer referencyjny usługi, a VS udało się poskładać elementy za kulisy. Brak zmian w kodzie źródłowym lub wygenerowanych plikach.
źródło
Właśnie natknąłem się na ten problem po cofnięciu zatwierdzenia git, które dodało pliki z powrotem do mojego projektu.
Czyszczenie i przebudowa projektu nie działała, nawet jeśli zamknąłem VS między każdym krokiem.
Ostatecznie działało, zmieniając nazwę pliku na coś innego i zmieniając go ponownie. : facepalm:
źródło
Po wypróbowaniu wszystkich wymienionych opcji odkryłem jeszcze jeden powód, dlaczego tak się dzieje. Jeśli ktoś wysłał Ci kod źródłowy jako plik zip lub plik zip został pobrany, system Windows mógł zablokować wszystkie pliki. 2 sposoby rozwiązania tego:
Metoda 1:
Kliknij prawym przyciskiem myszy oryginalny plik Zip -> Zaznacz „Odblokuj” -> Kliknij Zastosuj
Metoda 2:
Jeśli to nie jest opcja, zamiast otwierać właściwości dla każdego pliku w folderze rozwiązania, po prostu otwórz powłokę Power i odblokuj rekurencyjnie, wykonując następujące czynności:
źródło
Mam nadzieję, że rozwiążę twój problem
źródło
Miałem ten problem w pracy (działający VS2017). Wypróbowałem wszystkie odpowiedzi tutaj. Brak przyjemności.
Projekt byłby w porządku, ale narzekał, że nie można znaleźć przestrzeni nazw / typów. Czerwone kłębki w całym miejscu. Wiele błędów w oknie Lista błędów.
Moje rozwiązanie zawierało 3 projekty.
Odkryto, że 3 odwołania do biblioteki NuGet dla jednego z projektów były niezgodne z linią. Skonsolidowane wersje bibliotek i Bingo.
Mam nadzieję, że to komuś pomoże.
Brett.
źródło
Rozładuj i przeładuj projekt naprawił ten problem.
źródło
Czasami, jeśli tylko wyczyścisz rozwiązanie, błędy znikną, ale mogą w końcu wrócić po pewnym czasie lub przy następnej kompilacji.
źródło
Wystąpił ten problem polegający na tym, że Visual Studio nie rozpoznało jednego typu, który pokazał czerwony błąd, mimo że rozwiązanie zostało pomyślnie zbudowane. Zauważyłem w Eksploratorze rozwiązań, że plik nie ma strzałki rozwijania po lewej stronie, która pokazuje klasy i właściwości przy rozszerzaniu.
Rozwiązaniem było wykluczenie pliku z projektu i zapisanie / kompilacja, która spowodowała oczekiwany błąd, a następnie włączenie pliku do projektu oraz zapisanie i kompilacja.
Po wykonaniu tych kroków program Visual Studio ponownie rozpoznał mój typ. Patrząc na różnicę w git, wydaje się, że problem był spowodowany
<Compile Include="..." />
niedopasowaniem końców linii w linii mojego pliku .csproj.źródło
w moim przypadku vs nigdy nie zachowywał zaimportowanych przestrzeni nazw we właściwościach projektu> referencjach
kiedy próbowałem je dodać / sprawdzić ponownie, nie mogłem i vs rzucił błąd, a gdy zapisany projekt vs zawiesił się. Po ponownym otwarciu wszystkie standardowe importowane przestrzenie nazw (system.data itp.) Zostały ponownie zaznaczone, a następnie rozpoznało wszystko bezbłędnie
źródło
TL; DR: Wykonaj czystą ponowną instalację programu Visual Studio
Po marnowaniu kilku godzin nadal nie mogłem go naprawić dla Visual Studio 2017. Potem zainstalowałem PREVIEW Visual Studio 2019 i nagle IntelliSense ponownie wyświetla mi członków klas STL (czego nie robi z Visual Studio 2017 ).
Domyślam się, że może być coś nie tak z samym Visual Studio (może coś w katalogu pamięci podręcznej lub ogólnie coś na twoim komputerze, co nie jest bezpośrednio związane z konkretnym rozwiązaniem), które można rozwiązać przez czyste i kompletne ponowne -instalacja programu Visual Studio. Wiem, że to głupie „rozwiązanie”, ale w moim przypadku zadziałała tylko nowa instalacja Visual Studio (2019).
Jak już wspomniano, w moim przypadku dotyczyło to tylko klas STL. IntelliSense nie wyświetla swoich członków, co jest dziwne. Pomyślałem, że może to mieć coś wspólnego ze wstępnie skompilowanymi nagłówkami. Gdzieś przeczytałem, że STL i projekt powinny znajdować się na tym samym dysku i ustawienie ich na tym samym powinno rozwiązać problem. Ale żadna z tych dróg nie doprowadziła do sukcesu.
źródło
Odkryłem, że może się tak zdarzyć, jeśli projekt, do którego się odwołujemy, jest ukierunkowany na wyższą wersję frameworka niż projekt, który próbuje go użyć. Możesz stwierdzić, czy to jest problem, przechodząc do okna wyjściowego i szukając czegoś podobnego do tego:
Rozwiązaniem jest zmiana docelowej struktury jednego lub drugiego projektu.
źródło
Moje symptomy w VS2019 polegały na tym, że budowałem z pewnymi błędami. Następnie naprawię błędy, a kompilacja będzie działać, jak pokazano w oknie Wyjście. Ale okna błędów nadal pokazywały stare błędy. Mógłbym to dobrze uruchomić. Zamknięcie VS2019 i ponowne otwarcie rozwiązało problem, ale tylko na chwilę. Zaczęło się to dziać w wersji 16.4.3
To rozwiązanie wydaje mi się działać:
Odznacz Narzędzia-> Opcja-> Projekty i rozwiązania-> Ogólne-> Pozwól na równoległą inicjalizację projektu
Znalazłem tę poprawkę ukrytą w komentarzach tutaj: https://developercommunity.visualstudio.com/content/problem/483450/vs-2019-intellisense-reports-compile-errors-when-r.html
źródło
Spróbuj najechać myszką na podkreślone elementy. Zwykle powinien powiedzieć ci na czym polega problem. Aby wyświetlić listę wszystkich błędów / ostrzeżeń, przejdź do Widok => Lista błędów. Tabela powinna się otworzyć na dole IDE z wymienionymi wszystkimi błędami / ostrzeżeniami.
źródło