[visual-studio] Visual Studio 2015 또는 2017에 IntelliSense 오류가 표시되지만 솔루션이 컴파일됩니다.

현재 새로운 Visual Studio 2015를 평가 중이며 IntelliSense에서 이상한 문제가 발생했습니다. 새 스튜디오로 주요 솔루션을 컴파일하면 빌드는 성공하지만 그럼에도 불구하고 6 개의 오류가 표시됩니다.

나는 그것이 실제 오류가 아니라 단지 지능적인 오류라는 것을 발견했습니다. 코드는 확실히 정확하고 모든 것이 성공적으로 컴파일되었습니다. 그러나 코드는 빨간색으로 표시되고 오류 목록에 오류가 표시됩니다.

6 개의 오류는 모두 동일한 출처를 가지고 있습니다. 간단한 생성자 호출입니다. 이상하지만 오류없이 똑같은 생성자가 발생하는 경우도 있습니다.

오류 메시지 :

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>

새 스튜디오는 레거시 소프트웨어 (VS13 없음)없이 새로 설치된 Windows 7에 설치되었습니다.

나는 이미 캐시를 지우고, suo 파일을 삭제하고, bin과 obj 디렉토리를 삭제하고, 솔루션을 정리하고 재 구축하려고 시도했지만 아무것도 작동하지 않았습니다.

누구든지 저에게 그 행동을 설명 할 수 있습니까?



답변

마이그레이션 된 프로젝트에서도이 문제가 발생했기 때문에 Microsoft.CSharp dll을 참조했습니다. 일부 프로젝트에서는 프로젝트에서 참조를 제거하고 다시 추가해야했습니다.


답변

수천 개의 인텔리 센스 오류와 0 개의 빌드 오류가있었습니다. .suo파일을 삭제 하고 VS intellisense를 다시 시작하면 오류가 사라집니다.

Suo 파일은 소스에 상대적으로 위치합니다.
.vs\SolutionName\v14\.suo

코멘트에 따르면 : 그것은 *.suo숨겨진 파일 임을 조심하십시오 .

편집 : 의견에 따르면 VS2017에는 동일한 문제가 있으므로 유사한 솔루션을 사용할 수 있습니다. 삭제.vs\SolutionName\v15\.suo


답변

Visual Studio 2017 ASP.Net Core Project에서 유사한 문제가 발생했습니다. 다음 단계는 나를 위해 트릭을했습니다.

  1. 깨끗한 솔루션 수행
  2. 닫기 VS
  3. .suo 파일 삭제 및 bin / obj 디렉토리 삭제
  4. VS 다시 열기

답변

다른 문제와 비슷하지만 해상도가 다릅니다. 다른 사람을 도울 수있는 경우 게시합니다.

Visual Studio 2017 15.5.2 실행 나는 힘내를 사용하고 자주 분기를 전환합니다. 몇 주 전에 편집자가 오류를 표시하기 시작했습니다 (참조가 유효하더라도 찾을 수없는 유형과 관련된 모든 유형). 컴파일은 훌륭하게 작동했습니다. VS 2017 15.6 Preview (2018 년 1 월 6 일)에서 동일한 문제를 확인했습니다. 캐시, SUO 파일 또는 bin / obj 폴더를 삭제하려고하는데 아무런 영향이 없습니다. 처음에는 작동하는 것처럼 보입니다. Visual Studio를 다시 열면 모든 것이 좋아 보일 것입니다. “Rebuild Solution”을 사용하면 IntelliSense 오류가 반환됩니다. Visual Studio의 제거 / 재설치도 시도했습니다.

동일한 버전의 Visual Studio를 사용하는 두 대의 컴퓨터에서 동일한 문제가 발생했습니다.

누락 된 유형에 대한 오류를 살펴보면 모두 두 개의 참조 된 프로젝트에서 비롯된 것으로 보입니다. 이러한 참조 중 하나는 솔루션의 거의 모든 프로젝트에서 사용하는 공유 프로젝트 였지만 그중 하나는 많은 참조가없는 작은 프로젝트였습니다. 작은 프로젝트가 더 큰 공유 프로젝트에서도 참조되었습니다. Visual Studio에서 작은 프로젝트를 언로드하고 다시로드했습니다. 오류가 사라졌습니다! Rebuild Solution에서 오류가 다시 발생하지 않았습니다.

그런 다음 Git 분기를 전환하고 오류가 모두 다시 발생했습니다. 다행히도 작은 프로젝트를 언로드 / 다시로드하는 위의 단계를 반복했는데 오류가 사라졌습니다.

Git 분기를 전환 할 때마다 해당 프로세스를 반복 할 때까지 오류가 다시 발생합니다. 언로드 / 다시로드하는 소규모 프로젝트의 Git 분기간에 변경 사항이 없습니다. 해당 시퀀스가 ​​내 문제를 해결하는 이유를 명확하지 않습니다.


답변

또한이 문제 (특정 오류 메시지가 아닌 제목)와 편집기의 구불 구불 한 선이있었습니다. 첫 번째 구불 구불 한 선은 #include미리 컴파일 된 헤더의 이름을 지정하는 첫 번째 문 아래에 있습니다. Intellisense는 미리 컴파일 된 헤더를 포함하지 못하지만 오류로 나열하지 않습니다. 대신 미리 컴파일 된 헤더의 선언에 의존하는 코드에 대한 오류를 파일 아래에 나열합니다.

Intellisense가 내 환경에서 미리 컴파일 된 헤더를 찾지 못하는 이유는 명명 된 헤더가 실제 파일이 아니기 때문입니다. 미리 컴파일 된 헤더 설정이 올바르게 구성되어있는 한 내가 사용한 다른 VC 또는 gcc 버전이나 2015 컴파일러에있을 필요는 없습니다. Intellisense에 대한 더 이상은 분명히 아닙니다. 2013 년에 그게 달라 졌는지 완전히 확신하지 못합니다.

이것이 여기에보고 된 문제가 될 가능성이없는 경우 해결책은 간단합니다. #include지시문에 지정된대로 미리 컴파일 된 헤더의 pretend-name으로 작은 파일을 만들고 해당 파일에 미리 컴파일 된 헤더의 실제 이름을 포함하도록합니다.

궁금하다면 … ‘#include’문에있는 미리 컴파일 된 헤더 이름과 미리 컴파일 된 헤더의 실제 파일 이름이 왜 이렇게 구분됩니까? 이는 미리 컴파일 된 헤더 설정이 올바르게 구성되도록 보장하기 때문입니다. 미리 컴파일 된 헤더가 “#included”이면 포함 할 수있는 파일이 없습니다. 실제 헤더의 실제로 사전 컴파일 된 (이진) 버전을 읽거나 컴파일에 실패합니다. 분명히 단점은 Intellisense뿐만 아니라 코드를 읽는 사람들 을 혼란스럽게한다는 것 입니다.


답변

Visual Studio 2017 .vs \ SolutionName \ v15.suo 위치에서 “.suo”파일을 삭제 한 다음 Visual Studio를 다시 시작했습니다. 이것은 나를 위해 일했습니다.


답변

오늘 저는 MSVC ++ 2015에서 비슷한 문제를 겪었습니다. 거의 포기하고 IDE 힌트없이 계속하기로 결정했지만 갑자기 문제가있는 프로젝트의 stdafx.h에 표준 라이브러리 헤더가 포함되어 있지 않다는 것을 알게되었습니다. 프로젝트에 사용 된 모든 표준 헤더를 stdafx.h에 포함하면 컴파일 속도가 향상 될 수 있다고 추측했지만 Intellisense 오류도 수정했습니다.