2017-05-04 1 views
0

내 전반적인 목표는 솔루션 빌드가 끝날 때 모든 경고를 읽은 다음 오류로 기록하는 것입니다. 이는 TreatWarningsAsErrors 설정과 구별됩니다. 이는 경고가있는 프로젝트의 바이너리도 생성해야하기 때문입니다.MSBuild 작업에서 빌드에 의해 생성 된 모든 경고에 어떻게 액세스 할 수 있습니까?

사용자 지정 MSBuild 작업으로이 문제를 해결할 것으로 예상되지만 .targets 파일에서이 파일을 전달해야하는지 알 수 없습니다.

편집 : 특정 문자열에 대한 로그를 구문 분석하고 해당 특정 코드에 대한 오류를 발행하기 때문에 주소록에 this question이 중복되어 있다고 생각하지 않습니다. 나는 그 내용에 관계없이 빌드에서 모든 경고 목록을 얻고 싶습니다.

+0

[가능한 경우 MSB3245 (참조를 확인할 수 없음) 경고를 오류로 처리 할 수 ​​있습니까?] (http://stackoverflow.com/questions/17495278/how-can-i-treat-msb3245-could-not) -resolve-reference-as-an-error); 질문은 다소 다르게 보이지만, 결국 똑같습니다. 빌드하는 동안 로거가 내뿜는 경고에 어떻게 대처할 것인가. – stijn

+0

stjin - 유용 할 수도 있지만 특정 경고를 받고 싶지는 않습니다. 나는 모든 경고를 포착하고 싶다. 그것들은 다른 형태로 올 수 있기 때문에, 직접 로그 파싱으로는 충분하지 않을 수도 있습니다. 나는 그것을 시험해 볼 것이다. – Dahud

+0

MS 도구가 방출하는 모든 경고는 대소 문자를 구별하는'Warning [^ :] + :'regex와 일치해야합니다. 이는 링크 된 답변에 적용하기 쉽습니다. 그리고 다른 도구들은 메시지가 res와 일치하도록하기 원한다면 같은 규칙을 따르는 것이 좋습니다. – stijn

답변

0

단순히이 정보에 액세스 할 수 없기 때문에 작업 내부에서 빌드 경고를 얻을 수 없습니다. 경고가 제기되어 MS 로깅 인프라 스트럭처로 보내고 거기에서 처리됩니다. 이는 작업 실행과 완전히 분리됩니다.

그러나 사용자 정의 로거를 작성하여 빌드에서 발생하는 경고를 추적 할 수 있습니다. 사용자 지정 로거에서 경고 이벤트가 발생할 때마다이를 기록한 다음 빌드가 완료되면 해당 정보로 원하는 모든 작업을 수행 할 수 있습니다.

사용자 정의 로거 작성 방법은 herehere 문서를 참조하십시오.

관련 문제