C ++ 프로젝트와 함께 T4 코드 생성 템플릿을 사용하는 방법은 무엇입니까?
-
20-08-2019 - |
문제
T4 템플릿 파일은 C# 프로젝트에 따라 IDE에서 자동으로 인식 할 수 있지만 C ++ 프로젝트 (Make Files 사용을 사용하는 것 외에)에 어떻게 통합 될 수 있는지에 대한 단서가 없습니다.
어떤 아이디어?
해결책
T4 템플릿 파일은 C ++ 프로젝트에 통합 될 수 있지만 C#/VB 프로젝트보다 조금 더 작동합니다. C ++ 프로젝트에서 새 텍스트 파일을 만들고 .tt 확장자를 제공하십시오. 그런 다음 템플릿을 정상적으로 작성하십시오. 그런 다음 C ++ 프로젝트는 템플릿을 변환하기 위해 추가 작업이 필요합니다. 내가 작동하는 빠르고 더러운 방법은 사용자 정의 빌드 단계를 추가하고 "c : program files common files microsoft shared textTemplating 1.1 texttransform.exe"를 직접 호출하는 것이 었습니다. 내가 찾은 또 다른 방법은 사용자 정의 MSBuild 작업을 추가하는 것이 었습니다. 지침을 찾을 수 있습니다 여기
이것 페이지에는 더 많은 정보와 T4 코드 생성 사용에 대한 다른 페이지에 대한 좋은 링크가 있습니다.
다른 팁
MSBuild 작업은 VCPROJ 파일 (C ++)이므로 VCBuild가 사용되므로 작동하지 않습니다. TT 컴파일을 얻는 가장 쉬운 방법은 아래와 같은 맞춤형 빌드 단계를 추가하는 것입니다.
"C:\Program Files (x86)\Common Files\Microsoft Shared\TextTemplating\1.1\TextTransform.exe" -out "$(ProjectDir)\VSProject.cpp" -I "$(ProjectDir)" "$(ProjectDir)\VSProject.tt"
위의 MSBuild 작업 솔루션을 조사하는 데 몇 시간을 보냈으며 관리 코드에는 꽤 좋지만 C ++에 사용하는 방법을 볼 수 없습니다 (VCPROJ를 CSPROJ EEK로 변환하는 막대).
Visual Studio 2017 (및 2015 년?)
다른 답변에 나열된 명령은 파일로 부분적으로 부정확합니다. TextTransform.exe
새 디렉토리로 옮겨졌습니다 devenv
루트 폴더, 예를 들어 :
C:\Progra~1\Visual Studio 2017\Enterprise\Common7\IDE
이제 명령이 다음으로 업데이트되어야합니다.
"$(DevEnvDir)TextTransform.exe" -out "$(ProjectDir)xxx.cpp" "$(ProjectDir)xxx.tt"
어디 xxx
Yout의 파일 이름입니다 .tt
템플릿 파일