Programing

프로젝트가 빌드 된 경우에도 Visual Studio에서 오류 표시

lottogame 2020. 4. 6. 07:58
반응형

프로젝트가 빌드 된 경우에도 Visual Studio에서 오류 표시


C # 솔루션에서 Visual Studio에 문제가 있습니다. 완전히 임의의 오류를 표시하지만 프로젝트가 빌드됩니다. 지금은 오류가있는 33 개의 파일이 있으며 모든 파일에서 빨간색 구불 구불 한 줄을 볼 수 있습니다.

솔루션을 청소 / 다시 작성하고 Visual Studio를 닫고 컴퓨터를 다시 시작하려고했습니다. 또한 Visual Studio에서 컴파일러 오류가 발생하더라도 디버깅 실행에 설명 된 단계를 수행해야합니다. .cs 파일을 수정할 수 있으며 솔루션의 변경 사항을 볼 수 있습니다.

누구나 왜 그렇게하는지에 대한 아이디어가 있습니까?


ReSharper가있는 경우 ReSharper 캐시를 비워보십시오.

메뉴에서 ReSharper> 옵션> 환경> 일반> 캐시 지우기

ReSharper 비활성화 및 재 활성화 :

메뉴에서 도구> 옵션> ReSharper> 일반> 일시 중지 / 복원


Resharper의 캐시를 지우는 것은 제 경우에는 도움이되지 않았고 , JetBrains 웹 사이트에서 최신 다운로드를 사용하여 일시 중단 / 복원 및 Resharper 복구를 시도했지만 도움이되지 않았습니다 . 이것은 VS 닫기 / 다시 열기를 시도한 후 내 컴퓨터를 다시 시작하고 반복하고 빌드 / 재구성 및 그 조합을 반복합니다.

Resharper를 일시 중단 하는 것이 VS 두 번째 다시 시작 후 문제를 해결하는 것처럼 보였지만 Resharper <를 활성화 한 후에 다시 나타났습니다. 패턴을 보장하기 위해이 시퀀스를 2-3 번 시도했습니다.

어쨌든이 기사를 찾을 때 여전히 문제가 발생했습니다.

그래서 솔루션을 사용하여 동일한 폴더 수준 에서 숨겨진 .SUO 파일삭제 하고 모든 빨강을 마술처럼 해결했습니다.

참고 -Visual Studio 2015의 경우 .SUO 파일은 .vs / [solution_name] / v14 숨김 폴더에 있습니다.


tldr; 문제가있는 프로젝트를 언로드했다가 다시로드하십시오.

이 문제가 발생하면 VS를 닫고 다시 열어보십시오. 아마도 절반 정도 일했을 것입니다. 작동하지 않으면 솔루션을 닫고 .suo 파일 (또는 전체 .vs 폴더)을 삭제하고 솔루션을 다시여십시오. 지금까지 이것은 항상 저에게 효과적이었습니다 (지난 6 개월 동안 10 회 이상). 빌드 모드, 시작 프로젝트 등과 같은 일부 항목이 재설정되기 때문에 약간 지루합니다.

일반적으로 문제가있는 하나의 프로젝트이므로 방금 프로젝트를 언로드하고 다시로드하려고 시도했지만 정상적으로 작동했습니다. 내 샘플 크기는 1이지만 다른 두 옵션보다 훨씬 빠르므로 시도해 볼 가치가 있습니다. .suo 파일에 기록하기 때문에 이것이 효과가 있다고 생각하며, 문제의 원인이 된 파일의 손상된 부분을 수정했을 수도 있습니다.

참고 : 이것은 VS 2019, 2017 및 2015에서 작동하는 것으로 보입니다.


솔루션을 청소하고 VS를 닫았다가 다시 열었고 솔루션을 빌드했으며 해결되지 않은 빨간색 줄을 정리하여 빌드했습니다.


Visual Studio 2017에서 Git을 사용할 때 자주 발생하며 종속 코드 변경이있는 지점을 전환 합니다. 프로젝트가 성공적으로 빌드 되더라도 오류 목록에 오류가 남아 있습니다.

이러한 오류는 종종 라이브러리 참조가 존재하더라도 네임 스페이스 문제 및 참조 누락입니다.

해결하려면 :

  • Visual Studio 닫기
  • {sln-root} .vs \ SlnName \ v15.suo 파일을 삭제합니다 (숨겨 짐)
  • Visual Studio를 다시 시작하십시오.

나는 6 가지 옵션을 모두 시도했지만 아무것도 효과가 없었습니다. 아래 솔루션은 내 문제를 해결했습니다.

VS를 닫습니다. 솔루션 파일 옆의 숨겨진 ".vs"폴더를 삭제하십시오. VS를 다시 시작하고 솔루션을로드하십시오.


Intellisense가 한 프로젝트의 존재를 인식하지 못하는 것처럼 보이는 문제가있었습니다 (많은 "이 유형을 찾을 수 없음", "이 네임 스페이스가 존재하지 않습니다"등).

모든 참조 프로젝트에서 프로젝트 참조를 제거하고 다시 추가하면 문제가 해결되지만 문제 프로젝트의 .proj 파일을 편집하여 근본 원인을 해결할 수 있습니다.

"missing"프로젝트의 .csproj 파일의 맨 위에는 다음 요소가 있습니다.

<ProjectGuid>{GUID}</ProjectGuid>

모든 참조 프로젝트에서 .csproj 파일은 프로젝트 참조였습니다.

<ProjectReference Include="..\OffendingProject\OffendingProject.csproj">
  <Project>{ANOTHER-GUID}</Project>
  <Name>Offending Project</Name>
</ProjectReference>

참조 GUID가 프로젝트의 GUID와 일치하지 않습니다. {GUID}위의 내용을 교체 {ANOTHER-GUID}하면 모든 참조 프로젝트를 거치지 않고도 문제가 해결되었습니다.


삭제 숨겨진 파일 경로은 = 솔루션 \ .vs \ 솔루션 이름 \ V15 \ .suo을


VS-2017의 경우 .vs 폴더를 삭제하면 효과가 있습니다.


때때로 git 브랜치를 전환 할 때 Visual Studio (2017)는 두 번째 브랜치에 추가 된 일부 파일의 유형을 인식하지 못합니다. .vs 폴더를 삭제하면 문제가 해결되지만 모든 작업 공간 설정이 지워집니다. 이 트릭은 나에게 잘 작동하는 것 같습니다.

  1. 솔루션 탐색기-> 인식 할 수없는 클래스가있는 파일을 찾습니다.
  2. 솔루션 탐색기 상단에서 모든 파일 표시를 클릭하십시오.
  3. 파일-> 프로젝트에서 제외를 마우스 오른쪽 단추로 클릭하십시오.
  4. 파일을 마우스 오른쪽 단추로 다시 클릭-> 프로젝트에 포함을 클릭하십시오.

이로 인해 Intellisense는 분기를 전환 할 때 놓친 파일을 구문 분석합니다.


다음은 인기있는 답변 모음입니다. 도움이된다면 답변의 OP를 찬성하십시오.

옵션 1 : 정리, 빌드 및 새로 고침 ( @Mike Fuchs 옵션)

따라 @ 마이크 Fuchs의이 언급 한, 다음 작업을 시도해보십시오

메뉴에서 빌드> 솔루션 정리

메뉴에서 빌드> 솔루션 빌드

해당 프로젝트를 선택하고 새로 고침 버튼을 클릭하십시오.

새로 고침 버튼

옵션 2 : 정리, 닫기, 다시 시작 및 빌드 ( @Pixel 옵션)

으로 @Pixel가 언급, 작업의 다음과 같은 일련의 시도 :

  1. 솔루션 청소
  2. Visual Studio 닫기
  3. Visual Studio 열기
  4. 솔루션 구축

옵션 3 : ReSharper 캐시 지우기 ( @GammaOmega 옵션)

ReSharper가있는 경우 ReSharper 캐시를 비워보십시오.

메뉴에서 ReSharper> 옵션> 환경> 일반> 캐시 지우기

ReSharper 비활성화 및 재 활성화 :

메뉴에서 도구> 옵션> ReSharper> 일반> 일시 중지 / 복원

옵션 4 : .suo 파일 삭제 ( @Neolisk 옵션)

으로 @Neolisk는 언급의 .suo 파일을 삭제하면 문제를 해결할 수 있습니다. Visual Studio 2015의 경우 파일은 다음 위치에 있습니다.

[솔루션 경로] /. vs / [솔루션 이름] /v14/.suo

그리고 Visual Studio 2017의 경우 :

[솔루션 경로] /. vs / [솔루션 이름] /v15/.suo

.vs 디렉토리는 숨겨져 있습니다.

옵션 5 : 프로젝트 언로드 및 다시로드 ( @TTT 옵션)

으로 @TTT이 언급 한 문제의 원인이되는 프로젝트를 언로드하십시오 :

솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 프로젝트 언로드를 클릭하십시오.

그리고 그것을 다시로드

솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 프로젝트 다시로드를 클릭하십시오.

옵션 6 : Microsoft.CSharp 참조 제거 및 추가 ( @Guilherme 옵션)

으로 @Guilherme가 언급 제거하고 문제가있는 프로젝트에서 "Microsoft.CSharp"에 대한 참조를 추가하려고합니다.

솔루션 탐색기에서 프로젝트, "참조"를 차례로 확장하고 "Microsoft.CSharp"를 마우스 오른쪽 단추로 클릭 한 다음 제거를 클릭하십시오.

그런 다음 참조> 참조 추가를 마우스 오른쪽 단추로 클릭하고 목록에서 "Microsoft.CSharp"를 선택한 후 확인을 클릭하십시오.


경우에 따라 모든 프로젝트를 수행하고 "bin"및 "obj"폴더를 수동으로 삭제하여 사용자 지정 정리를 수행해야 할 수도 있습니다. Visual Studio에서이를 보려면 각 프로젝트에 대해 숨겨진 파일과 폴더를 활성화해야합니다. 이 작업이 완료되면 솔루션을 다시 빌드하십시오.


다음 솔루션이 나를 위해 일했습니다.

1-VS 닫기

2-.vs 폴더 삭제

3-오픈 VS

4-솔루션 구축


아마도 당신은 당신의 지능 캐시를 재설정하려고합니다. 많은 부분 클래스 정의가있는 큰 프로젝트에서 작업 할 때 Visual Studio 2012에서 비슷한 문제가 발생했습니다. 부분을 ​​줄이면 문제가 부분적으로 해결되어 인텔리전트 캐시도 지워집니다.


내 동료가 오늘이 문제를 경험했습니다. 우리는 여기에서 많은 권장 사항을 시도했지만 아래에 설명 된 솔루션을 제외하고는 효과가 없었습니다.

문제:

프로젝트는 잘 빌드되지만 Intellisense는 특정 유형을 인식하지 못하고 특정 using명령문을 유효하지 않은 것으로 표시합니다 .

해결책:

'Solutions Platform'을 변경하십시오 (VS 2017에서는 솔루션 구성 드롭 다운 옆의 드롭 다운이며 x86, x64, AnyCPU, 혼합 플랫폼 등과 같은 값을 가짐 )을 AnyCPU로 변경하십시오 .

프로젝트 플랫폼은 다를 수 있지만 일부 플랫폼이 모든 플랫폼에 유효하지 않은 것처럼 보입니다.


내 경우에는 다른 개발자가 기본 지점으로 병합 한 서비스 참조였습니다. 구문 강조 표시가 생성 된 서비스 클래스를 해결하지 못하고 소스에 모두 빨간색 밑줄이 표시되는 것을 제외하고는 완벽하게 괜찮 았습니다. 청소, 재건축, 재시작은 아무 것도하지 않았습니다.

내가해야 할 일은 서비스 참조를 새로 고치기 만하면되어 VS는 조각을 뒤에서 모아 놓았습니다. 소스 코드 나 생성 된 파일에는 변경이 없습니다.


파일을 다시 프로젝트에 추가 한 자식 커밋을 되 돌린 후이 문제가 발생했습니다.

각 단계 사이에서 VS를 닫아도 프로젝트 청소 및 재건이 작동하지 않았습니다.

결국 효과가 있었던 것은 파일 이름을 다른 것으로 바꾸고 다시 변경하는 것이 었습니다. 페이스 팜 :


0-솔루션을 마우스 오른쪽 버튼으로 클릭하고 솔루션을 청소하십시오

1-VS 닫기

2-프로젝트의 .suo 파일 삭제

3-오픈 VS

4-솔루션 구축


나열된 모든 옵션을 시도한 후 이것이 일어날 수있는 또 다른 이유를 발견했습니다. 누군가가 소스 코드를 zip으로 보냈거나 zip을 다운로드 한 경우 Windows가 모든 파일을 차단했을 수 있습니다. 이 문제를 해결하는 두 가지 방법 :

방법 1 :

원본 Zip 파일을 마우스 오른쪽 버튼으로 클릭-> '차단 해제'확인-> 적용 클릭

방법 2 :

이것이 옵션이 아닌 경우 솔루션 폴더의 모든 파일에서 속성을 여는 대신 다음을 사용하여 전원 셸을 열고 재귀 적으로 차단을 해제하십시오.

Get-ChildItem -Path 'C:\<ROOT FOLDER OF SOLUTION>\' -Recurse | Unblock-File

  1. 먼저 솔루션을 닫습니다.
  2. 그런 다음 솔루션 캐시 파일 삭제 (위치 C : \ Users \ Documents \ Visual Studio \ 백업 파일 / 프로젝트 캐시 파일)
  3. 그런 다음 .suo 파일 삭제
  4. 그런 다음 솔루션을 열고 구축하십시오.

나는 당신의 문제를 해결하기를 바랍니다


이 문제가 직장에서 발생했습니다 (VS2017 실행). 여기에 모든 답변을 시도했습니다. 기쁨이 없습니다.

프로젝트는 잘 빌드되었지만 네임 스페이스 / 유형을 찾을 수 없다는 불만이있었습니다. 사방에 빨간 불길. 오류 목록 창에 많은 오류가 있습니다.

내 솔루션에는 3 개의 프로젝트가 포함되었습니다.

프로젝트 중 하나에 대한 NuGet 라이브러리 참조 중 3 개가 잘못되었습니다. 참조 된 라이브러리 버전과 빙고를 통합했습니다.

이것이 누군가를 돕기를 바랍니다.

브렛.


프로젝트를 언로드 및 재로드하면이 문제가 해결되었습니다.


.vs폴더를 삭제 하면 문제가 해결되었습니다.

그러나 VS에서 솔루션의 현재 설정재설정합니다 . 마찬가지로 솔루션에서 언로드 된 프로젝트가 다시로드되고 VS를 다시 시작할 때 고정되고 열린 모든 문서도 닫혔습니다.


때로는 솔루션을 정리하면 오류가 사라지지만 결국 또는 다음 빌드에서 오류가 다시 발생할 수 있습니다.


솔루션이 성공적으로 빌드되었지만 Visual Studio에서 단일 유형을 인식하지 못하여 빨간색 squiggle을 나타내는이 문제가 발생했습니다. 솔루션 탐색기에서 파일의 왼쪽에 확장 화살표가 없으므로 확장에 대한 클래스와 속성이 표시됩니다.

수정은 프로젝트에서 파일을 제외하고 예상 오류가 발생한 저장 / 빌드 후 파일을 프로젝트에 포함하고 저장 및 빌드하는 것입니다.

이 단계를 수행 한 후 Visual Studio는 내 유형을 다시 인식하기 시작했습니다. git의 diff를 보면 문제가 <Compile Include="..." />내 .csproj 파일 줄에서 일치하지 않는 줄로 인한 것 같습니다 .


필자의 경우 vs는 프로젝트 속성> 참조에서 가져온 네임 스페이스를 유지하지 않았습니다.

다시 추가 / 확인하려고 할 때 오류가 발생하지 않고 저장된 프로젝트 대 충돌이 발생했습니다. 모든 표준 가져온 네임 스페이스 (system.data 등 ...)를 다시 열면 모든 틱이 다시 표시되고 오류없이 모든 것을 인식했습니다.


TL; DR : Visual Studio를 새로 설치하십시오.

몇 시간을 낭비한 후에도 여전히 Visual Studio 2017에서이 문제를 해결할 수 없었습니다. 그런 다음 Visual Studio 2019 PREVIEW를 설치하면 갑자기 IntelliSense에서 STL 클래스의 멤버를 다시 표시합니다 (Visual Studio 2017에서는 그렇지 않음). ).

따라서 제 생각에는 Visual Studio 자체에 문제가있을 수 있습니다 (캐시 디렉토리에 있거나 일반적으로 특정 솔루션과 직접 관련이없는 PC에있을 수 있습니다). Visual Studio의 설치. 나는 이것이 바보 같은 "솔루션"이라는 것을 알고 있지만, 제 경우에는 새로운 Visual Studio (2019) 설치 만 효과가있었습니다.

이미 언급했듯이 제 경우에는 STL 클래스 만 영향을 받았습니다. IntelliSense는 이상한 회원을 표시하지 않습니다. 미리 컴파일 된 헤더와 관련이있을 수 있다고 생각했습니다. 어딘가에서 STL과 프로젝트가 같은 드라이브에 있어야하며 같은 곳에 놓으면 문제가 해결됩니다. 그러나이 노선들 중 어느 것도 성공하지 못했습니다.


참조 된 프로젝트가 사용하려는 프로젝트보다 높은 버전의 프레임 워크를 대상으로하는 경우 이것이 발생할 수 있음을 발견했습니다. 출력 창으로 이동하여 이와 비슷한 것을 찾아서 이것이 문제인지 알 수 있습니다.

기본 참조 "my_reference"는 ".NETFramework, Version = v4.7.2"프레임 워크에 대해 빌드되었으므로 분석 할 수 없습니다. 현재 대상 프레임 워크 ".NETFramework, Version = v4.7"보다 높은 버전입니다.

해결책은 하나 또는 다른 프로젝트의 대상 프레임 워크를 변경하는 것입니다.


밑줄이 그어진 요소 위에 마우스를 올려 놓으십시오. 일반적으로 문제가 무엇인지 알려 주어야합니다. 모든 오류 / 경고 목록을 보려면보기 => 오류 목록으로 이동하십시오. IDE의 맨 아래에 모든 오류 / 경고가 나열된 테이블이 열립니다.


Microsoft .NET Framework의 임시 파일을 삭제하여이 문제를 해결했습니다. 위치 : C : \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET 파일 및 C : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET 파일

참고 URL : https://stackoverflow.com/questions/17703004/visual-studio-displaying-errors-even-if-projects-build

반응형