2011-05-16 2 views
1

내 dbml (Linq to Sql) 파일에서 dbml 파일을 내 프로젝트의 많은 부분에 배치하고 싶습니다. 그래서이 목적을위한 사용자 정의 도구를 작성했습니다.하나의 파일에 두 개의 사용자 정의 도구가 있습니까?

하지만 문제는 dbml에 이미 있습니다. 어떤 경우 MSLinqToSQLGenerator 사용자 지정 도구를 포함,

그래서 당신이 날은 당 하나의 "사용자 지정 도구"를 지원하는

답변

2

비주얼 스튜디오에 대한 당신의 생각을 알려, 하나 개의 파일에 대한 두 개의 사용자 정의 도구를 설정할 수있는 방법을 알고 파일을 만들지 만 사전 컴파일 단계를 추가하여 원하는 다른 도구와 달리 다른 도구를 실행할 수 있습니다. 예를 들어, 내 프로젝트 중 하나의 "빌드 이벤트"탭에서 다음과 같은 사전 컴파일 단계를 설정했습니다.

"$(DevEnvDir)..\..\..\Common Files\Microsoft Shared\TextTemplating\10.0\TextTransform" "$(ProjectDir)DataContext\Northwind.proxy.tt" 

가 상대 경로 지정은 T4 명령 줄 도구를 찾기 위해 여기에가는 많은,하지만 당신은 아이디어를 얻을. 이 특정 T4 파일은 출력을 생성하기 위해 읽는 .dbml 파일과 같은 디렉토리에 있습니다.

프로젝트를 컴파일하기 전에 원하는 외부 도구를 실행할 수 있습니다. 첫 번째 실행 후에 도구의 출력을 프로젝트에 포함시켜야합니다. 그 후에 파일은 PRE 컴파일 단계의 일부로 변경되므로 항상 각 빌드에서 업데이트됩니다.

2

템플릿의 책임으로 LINQ to SQL T4 생성기를 포함하면 T4를 올바르게 제어 할 수 있습니다.

제대로 이해했다면 .dbml generator의 기본 동작을 유지하면서 자신 만의 동작을 추가하려고합니다.

약간 "오래된"것처럼 보였습니다. 개인적으로 LINQ to SQL을 사용하지는 않았지만 표준 .dbml 생성기와 동일한 T4 생성기를 대신 사용했습니다.

https://github.com/damieng/L2ST4

그 VS 2010 버전과 최신하지만 당신은 항상 표준하면 .dbml 코드이 T4 출력을 생성 비교하여 동일한 결과를 달성하기 위해 적절한 변경을 할 수 있는지 확실하지.

물론 여러 개의 다른 생성기를 사용하여 간단히 "모든 템플릿 변환"으로 실행할 수도 있지만 질문에 따라 생성기를 특정 사용자 지정 도구에 연결해야합니다.

"T4ScriptFileGenerator"사용자 지정 도구를 파일에 추가하는 T4 Toolbox https://github.com/olegsych/T4Toolbox도 체크 아웃 할 수 있습니다 (이미 익숙하지 않은 경우). 파일이 변경되면 효과적으로 T4 코드가 실행됩니다.

관련 문제