2012-12-04 4 views
2

수십 개의 사용자 지정 코드 분석 규칙을 작성했습니다. 이 규칙은 Visual Studio 2010을 대상으로 개발되었습니다. 필요에 따라 어셈블리에는 FxCopSdk, Microsoft.Cci 및 Microsoft.VisualStudio.CodeAnalysis의 버전 10.0에 대한 참조가 있습니다. Visual Studio 2010에서 올바르게 실행되고 TFS 2010에서 올바르게 빌드됩니다.사용자 지정 코드 분석 규칙을 VS2012로 마이그레이션

Visual Studio 2012로 마이그레이션하고 싶습니다. VS 2012를 사용하는 기존 솔루션에서 사용자 지정 규칙을 실행할 때 CA0062 오류가 발생합니다. 근본 원인은 사용자 지정 규칙 어셈블리를로드하는 CA0053 오류입니다. 3 가지 어셈블리에 대한 이러한 참조는 Visual Studio 2012의 경우 버전 11로 업데이트해야한다는 것을 알고 있습니다. 이는 구성 파일의 버전 리디렉션을 사용하여 수행 할 수 있습니다. Visual Studio 2012 IDE 및 FxCopCmd 바이너리를 리디렉션하여 로컬로 작업 할 수는 있지만 TFS 2010에서 코드를 확인할 때 문제가 발생합니다.

두 가지 명백한 해결 방법이 있지만 두 가지 모두 매우 맛이 없습니다. 첫 번째는 각 개발자가 로컬로 리디렉션하도록 요구 한 다음 리디렉션하도록 TFS 빌드 에이전트를 수정하는 것입니다. 두 번째는 사용자 지정 코드 분석 규칙의 두 가지 분기를 유지하는 것입니다. 하나는 버전 10 (VS2010)을 타겟팅하고 다른 하나는 VS2012를 타겟팅하는 것입니다.

더 좋은 방법이 있습니까, 아니면 모두 TFS 2012와 Visual Studio 2012로 동시에 업그레이드해야합니까?

+0

나는 이것이 귀하의 세 가지 옵션이라고 생각합니다. ( –

답변

0

프로젝트 파일을 수동으로 편집하고 두 개의 포함 블록 (VS2010 용과 VS2012 용)을 작성한 다음 올바른 조건을 사용하도록 조건을 정의 할 수 있습니다. msbuild에서 VS2010 또는 VS2012 용으로 빌드 할 것인지 결정해야합니다.

0

ZFE에서 제안한 방식과 접근 방식 사이에는 잠재적 인 후보자가 거의 있습니다. 선택 사항이 주어지면 이전 버전과의 호환성을 보장하는 FxCop 용 공식 SDK가 없기 때문에 분기를 권장합니다.

행운 인 경우 규칙에 영향을주는 행동 또는 API 표면 변경은 발생하지 않으며 두 분기의 유일한 차이점은 참조가되므로 모든 병합은 간단합니다. 그러나 나중에 다른 방법으로 투자를 할 경우 나중에 분기해야 할 경우 손실 될 수 있으며 결국 지점을 필요로 할 가능성은 무시할 수 없습니다.