오류나 경고없이 빌드 실패 이유를 찾는 방법


145

WCF 서비스에 대한 참조가 포함 된 WebApplication이 있습니다.

Visual Studio 2010을 사용하여 빌드하는 동안 오류나 경고없이 빌드가 실패합니다. 그러나 건물 .csproj사용하는 것은 MsBuild성공이다.

Visual Studio에서 문제를 해결 / 진단하기 위해 무엇을 시도해야하는지 알 수 없습니다. 도와주세요?

편집하다:

빌드가 실패한 것을 발견했습니다.

  1. 상태 표시 줄에 표시되는 텍스트에서.
    여기에 이미지 설명을 입력하십시오

  2. 출력 창에서 :

    ========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========

5
빌드가 실패했다는 것을 어떻게 알 수 있습니까?
Sam 나는 오전

5
출력 탭에 어떤 것이 있습니까?
Malice

15
Visual Studio에서 출력 창의 세부 정보를 높이십시오. 문제를 확인하는 데 도움이 될 수 있습니다. 상세 레벨을 증가하는 방법 : blogs.msdn.com/b/saraford/archive/2008/10/07/...
맥심 코르닐로프

6
VS2010을 다시 시작하거나 PC를 다시 부팅 해 보셨습니까?
comecme 2011

2
@NahuelI. 내가 검색 할 때 나는 내 자신의 질문에 다시 :-)있어 유래 나는, 다른 프로젝트에서 다시 한번 비슷한 문제를 가지고
Abhijeet

답변:


120

방금 비슷한 상황에 처했습니다. - 내 경우에는, 사용자 지정 작업합니다 (MSBuildVersioning에서이 Nuget.org에 사용 가능한 패키지 http://www.nuget.org/packages/MSBuildVersioning/ 에서 오류 메시지를 트리거하지 않고 실패 된 csproj 파일의 BeforeBuild 목표에 등장) 정상적인 장소.

아래 그림과 같이 " 최신 Visual Studio의 도구 탭 [경로 : 도구> 옵션> 빌드 및 실행 ] 에서 "MSBuild 프로젝트 빌드 출력 상세도 " 를" 진단 "으로 설정하여이를 확인할 수있었습니다. 그런 다음 사용자 지정 작업 (내 경우에는 HgVersionFile)이 실패한 것으로 나타났습니다.

수정 된 설정을 보여주는 Visual Studio의 화면 캡처


2
우수한 발견 Richard-두 가지 상세 레벨을 모두 진단으로 설정했을 때 매우 유용한 정보
Dai Bok

3
나 같은 단서가없는 사람이라면이 방법을 사용하려면 출력 창의 내용을 검색해야 할 수도 있습니다. 내 빌드 오류는 #pragma warning disable문에 의해 숨겨져 있었고 출력 창에서 '오류'를 검색했을 때만 나타났습니다.
sirdank

자세한 정보를 진단으로 설정 한 후 System.OutOfMemoryException이 발생하는 것을 발견했습니다. 컴퓨터의 사용 가능한 메모리의 98 %를 사용하고있었습니다. 이것은 좋은 답변입니다!
TxRegex

1
이렇게하면 VisualStudio 2017의 문제도 해결됩니다. 고마워
H. Aydin

1
나를 위해 Queue New Build를 사용하여 TFS를 빌드하고 Queue Build 대화 상자의 두 번째 탭에 자세한 내용이 표시되어 빌드 로그에서 문제를 볼 수 있습니다.
AaronLS

135

빌드 + Intellisense 가 오류 메시지를 삼켰습니다. Build Only를 선택하면 표시됩니다.

스크린 샷


이 중 어느 것도 오류가 표시되지 않는 상황에 처했습니다. (
Imad

1
와우, 이것은 VS 2019의 새 버전에서 도대체 어떻게 작동했는지 나에게 효과적이었습니다. 고마워요!
카터

1
@AbuAbdullah 나를 위해 일했습니다. 다른 사람들을 돕는 일을 잘하셨습니다.

감사, 내 하루를 저장
Bikram Limbu

59
  • 솔루션에 둘 이상의 프로젝트가 포함 된 경우 한 번에 하나씩 빌드하십시오.
  • Visual Studio를 다시 시작하십시오.
  • 컴퓨터를 다시 시작하십시오.
  • 시도 " 다시 모든 "
  • " Clean Solution "을 시도한 다음 " vspscc "파일과 " vssscc "파일을 제거한 다음 Visual Studio를 다시 시작한 다음 " Rebuild All " 을 다시 시작하십시오 .

105
도움이되지 않으면 새로운 일자리를 찾아야합니까?
Alex Zhukovskiy

2
VS2013을 다시 시작하면 도움이되었습니다. 리소스가 제한된 VM에서 작업하고 있었지만 VM과 관련이 있는지 확실하지 않습니다.
Jmaurier

2
이 문제가 발생하면 솔루션을 정리할 수 없습니다.
H. Aydin

1
내가 도움이 된 것은 VS의 모든 인스턴스를 닫고 (오류가있는 것을 닫을만큼 충분하지 않음) .vs폴더 를 삭제하고 VS를 다시 시작하는 것입니다.
EliSherer

22

VS (2013 Pro, Win 8.1) 다시 시작하면 나에게 도움이되었습니다.


단일 MVC 프로젝트로 VS 2015 커뮤니티 승리 7. 같은 해상도.
maplemale

2
VS 2017 Community Win 10. 솔루션을 검색하기 전에 껐다가 다시 시도해야한다고 생각합니다!
DreamTeK


9

Sasse의 답변 을 확장하고 싶습니다 .

Visual Studio 2015 업데이트 2의 문제를 해결하려면 각 프로젝트를 한 번에 하나씩 빌드하고 각 빌드 후 출력 창을 봐야했습니다.

하나의 프로젝트가 나에게 주었다

"유형 또는 네임 스페이스 이름 'SomeNamespace'가 네임 스페이스 'BeforeSomeNamespace'에 없습니다 (조립품 참조가 없습니까?)."

오류 목록 창에 오류가 없지만 "참조"아래에 어셈블리에 노란색 경고 표시가 있습니다.

그런 다음 참조 프로젝트가 4.5.1 및 참조 프로젝트 4.6.1을 대상으로한다는 것을 알았습니다. 4.6.1을 4.5.1로 변경하면 전체 빌드가 성공했습니다.


1
글쎄, 한 번에 프로젝트를 빌드하는 것이 필요하지는 않지만 한 가지 확실합니다. "누락"이라는 단어의 출력 창을주의 깊게 살펴보십시오 (메모장에 복사 / 붙여 넣기 및 Ctrl + F 찾기 사용). 오류 목록에 나타나지 않지만 해결책을 찾지 못하는 것은 확실합니다. -.-
Dovydas Navickas

5

아무것도 나를 위해 작동하지 않아서 .suo 파일을 삭제하고 VS를 다시 시작하고 투영 된 것을 정리하면 빌드가 작동합니다.


5

이 질문에 대한 답변이 여러 개인 것 같습니다. 개인 경험에서 내 시간을 추가하여 누군가의 시간 / 스트레스를 줄일 수 있기를 바랍니다.

솔루션의 모든 프로젝트가 동일한 .NET 버전을 대상으로해야합니다.

OP와 마찬가지로 오류가 0이지만 빌드는 계속 실패했습니다. 그러나 하나의 프로젝트가이를 참조하는 프로젝트와 다른 .NET 버전을 대상으로한다는 경고 항목이 있습니다 (수백 개의 쓸모없는 XML 경고 사이에 묻혔습니다 ...). 전체 문제는 내 솔루션 내의 한 프로젝트가 .NET 4.5.2를 타겟팅하고 나머지는 4.5.1을 타겟팅하는 것이 었습니다. 그것은 해야한다 (그냥 경고했다, 따라서 왜)하지만 불행히도,이 빌드를 부러 이러한 차이로도 작동합니다.

이상한 부분은 잠시 동안 빌드 / 랜딩되었지만 갑자기 빌드가 한 번 실패 하여이 문제가 발생한다는 것입니다. 다른 .NET 대상 버전에 대해 불평하기 시작한 일이 확실하지 않지만 Visual Studio에는 해결할 수없는 신비가 있다고 생각합니다.


1
새 프로젝트를 추가했으며 다른 .Net 대상 프레임 워크 버전이 있음을 알았습니다.이를 수정하고 빌드가 여전히 실패했지만 빌드를 중단시키는 오류를 볼 수있었습니다. 감사.
Fijjit


3

먼저 "솔루션 정리"를 한 다음 솔른을 다시 빌드하십시오.

작동하지 않으면 솔루션을 닫고 솔루션을 다시 시작하십시오.

이것들을 시도하십시오, 희망은 확실히 작동합니다.


3

Visual Studio를 관리자 권한으로 실행해야 할 수도 있으며 이는 로컬 IIS 서버에 배포하거나 다른 배포 요구와 관련이있을 수도 있습니다.


3

이는 참조 된 프로젝트 중 하나가 현재 프로젝트보다 높은 .NET 프레임 워크 버전 인 경우 발생할 수 있습니다.


3

나는 같은 문제가 있었고이 문제를 오류 목록 옵션 "Build + Intellisense" 로 추적했습니다 .

이 옵션을 선택하면 목록에 오류가 표시되지 않습니다. " Build Only "로 전환 하면 오류가 예상대로 나타납니다.

Visual Studio의 버그처럼 보입니다. Visual Studio를 다시 시작하면이 문제가 해결되었습니다 .


2

솔루션에 새 프로젝트 ( "TestCleaner")를 추가 한 후에도 비슷한 문제가있었습니다. 빌드에 실패했습니다. 오류가 없습니다.

출력 세부 정보를 높이고 (Richard J Foster의 지침 참조) 출력에서 ​​"실패"를 검색했습니다. 실패한 프로젝트와 그 이유를 신속하게 발견했습니다. 이유 : "TestRunner"프로젝트가 " 오류 CS0246 : 유형 또는 네임 스페이스 이름 'TestCleaner'를 찾을 수 없습니다 .

TestRunner의 참조를 확인하여 TestCleaner에 대한 참조가 해결되지 않은 것으로 표시되었으며 경로가 참조 특성에서 누락되었는지 확인하십시오. 삭제하고 다시 추가해도 문제가 해결되지 않았습니다. 다시 한 번 이유는 설명하지 않습니다.

해결되지 않은 참조

"TestCleaner"가 다른 프로젝트와 다른 대상 프레임 워크를 사용하고 있다는 원인을 마침내 발견했습니다. .Net 4.5.2였습니다. 나머지는 4.5였습니다.


2

완료를 위해 그리고 나중에 같은 오류가 다시 발생하는 사람을 돕기 위해 Mahapps metro 인터페이스를 사용하고 한 창의 XAML을 변경했지만 코드 숨김에서 부분 클래스를 변경하는 것을 잊었습니다. 이 경우 오류 나 경고없이 빌드가 실패했으며 설정에서 출력의 세부 정보를 늘려서 찾을 수있었습니다.

오류 창

출력 창


5
또한 오류 필터에서 'build + intellisense'가 아닌 'build only'를 선택하십시오.
niico

2

나는 같은 문제가 있었다. 오류 목록 창에는 "포함 된 항목 표시"및 "생성 된 문제 표시"드롭 다운이 2 개 있습니다. 드롭 다운에 마우스를 올려 놓으면이 이름이 표시됩니다. "생성 된 문제 표시"드롭 다운이 "빌드 + IntelliSense"로 설정되었고 "빌드 전용"으로 변경 한 후 오류가 목록에 나타납니다.


2

나를 위해, Target Framework문제였습니다.

내 프로젝트 Target Framework4.5.2였고 참조 된 프로젝트 Target Framework4.6.1입니다.

I가 업데이트되면 내 프로젝트는 Target Framework하기 4.6.1의 문제가 해결되었다.


1

나는 같은 문제에 직면했다! bin 폴더를 삭제하고를 다시 시작하십시오 VS. 그게 다야. 에서 테스트했습니다 VS 2013.


bin과 obj 폴더를 삭제 하여이 문제를 해결하려고 시도했을 때 문제가 해결되었습니다. 또한 obj 폴더를 삭제하려면 관리자 권한이 필요하므로 매우 이상한 일이 발생했습니다.
DAG

1

나를 위해 그것을 해결 한 것은 .vs솔루션의 루트 에서 폴더를 삭제하고 Visual Studio를 다시 시작하는 것이 었습니다 .

오류 목록 창에 오류가 표시되지 않았지만 여전히 빌드 출력에 오류가 있다고 말해야 할 수도 있습니다.


1

Powershell 명령 행에서 프로젝트를 빌드하십시오.

dotnet build

그러면 Visual Studio가 숨기고 빌드 오류 메시지로 검색하더라도 명령 줄 출력에 오류가 표시됩니다.


0

이것은 asp.net 프로젝트에 새 페이지를 추가 한 후 나에게 일어났다.

내가 한 것은 페이지를 제외하고 성공적으로 다시 빌드하도록하십시오.

그런 다음 모든 코드가 주석 처리 된 페이지를 다시 추가했습니다. 성공.

그런 다음 코드를 주석 처리하지 않고 모두 작동했습니다.


0

몇 가지 양식을 삭제 한 후에도 같은 문제가 발생했습니다. 코드에 들어가면 제거 된 컨트롤 중 하나에 대해 "정의 표시"를 수행하면 오류가 나타납니다.

또한 내 프로젝트 중 하나에서 더 높은 프레임 워크를 목표로 삼았으므로 문제가되었을 수도 있습니다.


0

나는 모든 것을 시도했지만 내 경우에는 아무것도 효과가 없었으며 언급 된 설정을 변경하여 문제를 아주 잘 해결했습니다. 후자의 시청자에게 도움이 될 수 있다면 사용해보십시오. 이러한 설정은 상황에 따라 다를 수 있지만 처음에 유지했던 것과 동일한 구성 설정으로 이미지를 포함한 모든 DLL을 빌드해야합니다 (이미지 참조).구성 설정

여기 이미지

건배!


0

nuget 패키지 'Microsoft.Net.Compilers'가 설치되어 있으면 Visual Studio 버전 (빌드 도구 버전)에 맞는지 확인하십시오.

버전 1.x는 C # 6.0 (Visual Studio 2015 및 업데이트)을 의미합니다. 예를 들어 1.3.2

VS2015를 사용하는 경우 1.x 이상의 버전으로 업그레이드하지 마십시오

https://stackoverflow.com/a/44397905/3862615


0

구형 머신에서 정말 오래된 프로젝트를했습니다. 기계를 끌 때 프로젝트가 올바르게 구축되었습니다. 오늘은 빌드 오류가 발생하지만 오류 메시지가 표시되지 않습니다. 위에서 제안을 시도한 후에는 운이 없습니다.

Visual Studio 2015에서 도구> 옵션> 프로젝트 및 솔루션> 빌드 및 실행 에서 Detailed MSBuild를 설정했습니다.

빌드에 대한 세부 정보는 거의 없지만 오류는 없습니다. 그 후 확장 및 업데이트 (도구> 확장 및 업데이트)를 확인하려고 시도했지만 업데이트가 필요한 부분이 거의 없었습니다.

Nuget 패키지Nuget 을 업데이트 한 후 범인이되었습니다. 빌드가 성공했습니다.

여기에 이미지 설명을 입력하십시오



0

모든 것이 작동하지 않았으므로 프로젝트를 솔루션으로 (.sln)으로 열 때 오류가 표시되지 않는 반면 프로젝트를 프로젝트로 열 때 오류가 표시됩니다.


0

같은 문제가 발생하여 도구 -> 옵션 -> 프로젝트 및 솔루션 / 빌드 및 실행 -> MSBuild 프로젝트 빌드 로그 파일 상세 정보 [ 진단 ]을 변경했습니다. 이 옵션은 내 VS가 오류 탭에 오류를 표시하지 않는 몇 가지 이유로 인해 로그에 오류를 표시합니다!

여기에 이미지 설명을 입력하십시오

메모장 / 텍스트 편집기에서 위의 설정과 출력 사본에서 오류를 검색하십시오. 모든 오류가 표시됩니다.


0

Visual Studio를 다시 시작하면 나에게 도움이되었습니다. 또한 Visual Studio를 정상적으로 다시 시작하십시오 (관리자로 실행하지 않음). 시스템을 다시 시작하고 위의 단계를 반복하십시오.


0

이 증상을 재현하는 다른 방법 :

기존 솔루션에 새 프로젝트를 추가했고 빌드 출력에서 ​​"유형 또는 네임 스페이스 이름 X를 찾을 수 없습니다 ..."와 같은 오류가보고되었지만 오류 목록에 오류가 표시되지 않았습니다.

내가 언급 한 클래스는 동일한 솔루션의 다른 프로젝트 (참조 된)에있었습니다.

실수로 새 프로젝트에서 이전 버전의 .net을 선택 한 것으로 나타났습니다. 다른 프로젝트와 동일한 버전으로 변경하면 모든 것이 오류없이 구축되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.