2012-02-02 3 views
1

우리는 사용자 정의 된 정적 코드 규칙을 어기는 체크 인을 거부하려고합니다. 따라서 "Perform Code Analysis"를 'AsConfigured'로 설정하여 Gated Checkin 빌드를 정의했습니다.Gated Checkin 빌드가 소스에서 [SuppressMessage]를 무시합니다.

Gated Check 빌드에 정의 된 것과 동일한 구성 및 대상을 사용하여 솔루션을 로컬로 빌드 할 때 오류가 없습니다. 하지만 Gated Checkin 빌드는 원본에서 정의한 [SuppressMessage] 특성을 무시하는 것으로 보이며 오류를보고합니다.

Gated checkin 빌드는 GlobalSuppressions 파일에 정의 된 [SuppressMessage] 특성을 무시하지 않습니다.

다른 사람이이 문제가 있습니까?

+0

이전에 'CODE_ANALYSIS' 상수가 해당 구성의 프로젝트 설정에 정의되지 않은 것을 보았습니다. 이 상수가 정의되지 않으면 컴파일 된 결과에서 모든 [SuppressMessage] 속성이 제거됩니다. – jessehouwing

+0

빌드 머신에서 새로운 작업 공간을 만든 후에 작업이 시작되었습니다. – GarethOwen

답변

3

로컬로 잘 작성했다고 말했을 때 Visual Studio에서 빌드 했습니까? 아니면 MSBuild로 빌드 했습니까?

TFS Build는 MSBuild를 사용하여 프로젝트를 빌드하므로 빌드 보고서에서 로그를 확인하여 빌드 중에 실행되는 MSBuild 명령을 확인할 수 있어야합니다 (자세한 수준을 보통으로 설정 한 경우).

이 문제를 조사하려면이 MSBuild 명령을 사용하여 로컬로 솔루션을 빌드하는 것이 좋습니다 (빌드 컴퓨터에서 사용되는 경로가 아니라 컴퓨터에서 솔루션 경로를 변경해야 함). MSBuild로 구축하는 것과 Visual Studio로 작성하는 것과의 불일치를 나타내는 같은 오류가 발생할 수 있습니다. 그런 다음 MSBuild 명령을보고 왜 같은 방식으로 동작하지 않는지 확인할 수 있습니다.

희망이 도움이됩니다.

+0

좋은 생각, 나는 Visual Studio 내에서 로컬로 빌드합니다. MSBuild를 사용하여 솔루션을 로컬로 구축 할 수 있습니다. – GarethOwen