Obecnie oceniamy nowy program Visual Studio 2015 i napotkaliśmy dziwny problem z technologią IntelliSense. Kiedy skompilowałem nasze główne rozwiązanie z nowym studiem, kompilacja się powiodła, ale mimo to pokazano 6 błędów.
Odkryłem, że to nie jest prawdziwy błąd, a tylko błąd inteligencji. Kod jest zdecydowanie poprawny i wszystko zostało pomyślnie skompilowane. Kod jest jednak oznaczony na czerwono, a na liście błędów pojawiają się błędy.
Wszystkie 6 błędów ma to samo źródło. To proste wywołanie konstruktora. Dość dziwne, ale jest też kilka wystąpień dokładnie tego samego konstruktora bez żadnych błędów.
Komunikat o błędzie:
Code: CS1729
Message: '<the class>' does not contain a constructor that takes that many arguments.
Project: <the project name>
File: <the path to the file>
Nowe studio zostało zainstalowane na świeżo zainstalowanym systemie Windows 7 bez żadnego starszego oprogramowania (bez VS13).
Próbowałem już wyczyścić pamięci podręczne, skasowałem plik suo, skasowałem katalogi bin i obj, wyczyściłem i odbudowałem rozwiązanie itp. Ale nic nie działało.
Czy ktoś może mi wyjaśnić to zachowanie?
Odpowiedzi:
Miałem również ten problem z migrowanym projektem, więc odwołałem się do biblioteki dll Microsoft.CSharp. W niektórych projektach musiałem usunąć i ponownie dodać odniesienie w projekcie.
źródło
Miałem tysiące błędów IntelliSense i 0 błędów kompilacji. Po usunięciu
.suo
pliku i ponownym uruchomieniu VS intellisense zniknęły.Suo
plik znajduje się w stosunku do źródła w:.vs\SolutionName\v14\.suo
Według komentarza: Uważaj,
*.suo
to jest ukryty plik.Edycja: Według komentarzy, VS2017 ma ten sam problem, więc możesz użyć podobnego rozwiązania: Usuń.
vs\SolutionName\v15\.suo
źródło
*.suo
w niektórych przypadkach pliki mogą być ukryte. Musisz więc włączyć tęView Hidden files
opcję w eksploratorze Windows.<%=Foo%>
mówi, że zmienna nie jest zadeklarowana, ale wszystko działa w czasie wykonywania.Wystąpił podobny problem w programie Visual Studio 2017 ASP.Net Core Project. Poniższe kroki załatwiły sprawę
źródło
Podobny problem jak inne, ale inna rozdzielczość. Wysyłanie na wypadek, gdybym mógł komuś pomóc.
Uruchamianie programu Visual Studio 2017 15.5.2. Używam Gita i często zmieniam gałęzie. Kilka tygodni temu zacząłem, gdy redaktorzy pokazali mi błędy (wszystkie związane z typami, których nie mógł znaleźć, mimo że odniesienia były prawidłowe). Kompilacja działała świetnie. Potwierdziłem ten sam problem w VS 2017 15.6 Preview (6 stycznia 2018). Spróbowałbym usunąć pamięć podręczną, pliki SUO lub foldery bin / obj i bez wpływu. Na początku wydawało się, że działa. Otwórz ponownie Visual Studio i wszystko będzie dobrze wyglądać. Użyj opcji „Odbuduj rozwiązanie”, a zostaną zwrócone błędy IntelliSense. Próbowałem nawet odinstalować / ponownie zainstalować Visual Studio.
Miałem ten sam problem na dwóch komputerach, na obu z tą samą wersją programu Visual Studio.
Patrząc na błędy dotyczące brakujących typów, okazało się, że wszystkie one pochodzą z dwóch projektów, do których istnieją odniesienia. Jednym z tych odniesień był projekt współdzielony, używany przez prawie każdy inny projekt w rozwiązaniu, ale jeden z nich był małym projektem bez wielu odniesień. Tak się składa, że do małego projektu odwoływał się także mój większy wspólny projekt. W Visual Studio wyładowałem mały projekt i załadowałem go ponownie. Błędy zniknęły! Te błędy nie wróciły w Rebuild Solution.
Następnie zmieniłem gałęzie Gita i wszystkie błędy wróciły. Na szczęście powtórzyłem powyższe kroki rozładunku / przeładowania małego projektu i błędy zniknęły.
Za każdym razem, gdy zmieniam gałęzie Git, błędy wracają, dopóki nie powtórzę tego procesu. Nie ma żadnych zmian między gałęziami Git dla mniejszego projektu, który wyładowuję / przeładowuję. Nie jest jasne, dlaczego ta sekwencja rozwiązuje mój problem.
źródło
Miałem również ten problem (tytuł, a nie konkretny komunikat o błędzie), a także faliste linie w edytorze. Pierwsza falista linia znajduje się pod pierwszą
#include
instrukcją, która nazywa prekompilowany nagłówek. Intellisense nie uwzględnia prekompilowanego nagłówka, ale nie wyświetla tego jako błędu; zamiast tego wyświetla listę błędów w dalszej części pliku, w kodzie, który (bardzo słusznie) opiera się na deklaracjach w prekompilowanym nagłówku.Powodem, dla którego Intellisense nie znajduje prekompilowanego nagłówka w moim środowisku, jest to, że nazwany nagłówek nie jest rzeczywistym plikiem. Nie musi być w żadnej innej wersji VC lub gcc, z której korzystałem, ani w kompilatorze 2015, o ile wstępnie skompilowane ustawienia nagłówka są poprawnie skonfigurowane. Najwyraźniej już nie dla Intellisense. Nie jestem do końca pewien, czy w 2013 roku było inaczej, może po prostu nigdy tego nie zauważyłem.
W mało prawdopodobnym przypadku, gdyby był to zgłoszony tutaj problem, rozwiązanie jest proste: utwórz mały plik z udawaną nazwą prekompilowanego nagłówka, jak określono w
#include
dyrektywach, i pozwól temu plikowi zawierać rzeczywistą nazwę prekompilowanego nagłówka.Jeśli zastanawiasz się ... dlaczego ta różnica między prekompilowaną nazwą nagłówka w instrukcji „#include” a rzeczywistą nazwą pliku prekompilowanego nagłówka? Właśnie dlatego, że gwarantuje, że prekompilowane ustawienia nagłówka są poprawnie skonfigurowane. Wszędzie tam, gdzie prekompilowany nagłówek jest „#included”, nie ma w pobliżu pliku, który można by dołączyć. Odczytywana jest albo faktycznie prekompilowana (binarna) wersja aktualnego nagłówka, albo kompilacja kończy się niepowodzeniem. Oczywiście wadą jest to, że dezorientuje ludzi czytających kod, a nie tylko Intellisense.
źródło
Visual Studio 2017 Usunąłem plik „.suo” z lokalizacji .vs \ SolutionName \ v15.suo, a następnie ponownie uruchomiłem program Visual Studio. To zadziałało dla mnie.
źródło
Dzisiaj miałem podobny problem z MSVC ++ 2015. Prawie zrezygnowałem i postanowiłem iść dalej bez podpowiedzi IDE, ale nagle zauważyłem, że stdafx.h projektu, z którym miałem problemy, nie zawiera żadnych standardowych nagłówków bibliotek. Spekulowałem, że włączenie wszystkich standardowych nagłówków używanych w projekcie do stdafx.h może przyspieszyć szybkość kompilacji, jednak naprawiło to również błędy Intellisense.
źródło
Miałem wiele
stdfax.h
w Dodatkowych katalogach dołączania. Upewnij się, że to,stdafx.h
co zamierzałeś, jest pierwsze na twojej ścieżce.źródło
Miałem podobny problem z różnymi wersjami Visual Studio.
Usunięcie folderu .suo lub .vs nie pomogło mi.
Rozwiązaniem dla mnie było to, że miałem aktywne rozszerzenie StopOnFirstBuildError. Po wyłączeniu opcji „Zatrzymaj kompilację przy pierwszym błędzie” w menu kompilacji i po pełnym zbudowaniu rozwiązania błędy wyświetlane przez Intellisense zniknęły.
źródło
Widziałem błędy Intellisearch tylko podczas publikowania strony internetowej. (Witryna ASP / C #, VS 2017). Zerwali publikację. Witryna działała poprawnie lokalnie.
Usunięto błędy, odznaczając ustawienie prekompilacji i opublikowano poprawnie. Publikuj -> Ustawienia -> Opcje publikowania pliku -> Prekompiluj podczas publikowania
źródło
W programie Visual Studio 2019 problem polega na zmianie gałęzi za pomocą Git, gdy w projekcie są zainstalowane pakiety NuGet. Co zrobiłem, aby to rozwiązać:
źródło