2011-09-14 3 views
0

컴파일 타임에 어떻게 사용자 정의 코드를 실행합니까? 각 빌드에서 실행되는 정적 메소드를 마크 업하는 데 사용할 수있는 속성이 있습니까?컴파일 타임에 이벤트 수신?

저는 PostSharp와 Moles와 같은 특정 라이브러리가 이와 비슷한 것을합니다. 이들 각각은 참조되는 프로젝트에 대한 특수한 컴파일 타임 루틴을 실행하는 것처럼 보입니다.

편집 : JIT가 아닌 Visual Studio에서 편집 한 형식을 언급하고 있습니다.

+0

어떤 상황에서 코드를 실행합니까? VS에는 사전 실행 및 사후 빌드 단계 후크가있어 임의의 실행 파일을 실행할 수 있으며 빌드 시스템에 연결하여 유연성을 높일 수 있습니다. 그러나 컴파일러 컨텍스트에서 코드를 실행하는 것은 불가능합니다. – Jon

+0

* * 참조하는 프로젝트 *가 컴파일 될 때마다 * 귀하의 어셈블리 *에서 정의한 임의의 코드가 있음을 의미합니다. 내 어셈블리를 참조하는 모든 프로젝트에 사전 빌드시 실행되는 코드가 있지만 각 사용자에게 빌드 이벤트를 수동으로 추가하지 않아도되도록하고 싶습니다. –

+0

키가 큰 주문입니다. VS 확장 영토와 같으며 많은 노력과 사용자가 바이너리를 설치하지 않아도 달성 할 수없는 것 같습니다. – Jon

답변

1

많은 도구가 빌드 프로세스의 업데이트 및 조작을 처리하기 위해 Custom Build Events을 사용합니다. 이것은 자신의 논리를 빌드 프로세스에 적용하는 데 사용할 수있는 매우 간단한 기술입니다.

이것은 코드를 보지 않지만 리플렉션을 사용하여 어셈블리를 빌드 후 분석하고 로직을 작성하는 프로그램을 작성할 수 있습니다.