어떻게 플러그인을 통해 프로젝트에서 T4 파일을 실행할 수 있습니까? 어떤 힌트/단서? 특히 부족한 EnvDte 문서를 찾고 있습니다.Builds에서 T4를 실행하는 VIsual Studio 플러그인
빌드 이벤트에서 T4 템플릿을 실행해야하므로이 솔루션을 얻었습니다. 뭔가가 바뀔 때마다 수동으로 도구를 실행하고 싶지 않습니다. 명령 줄에서 실행할 수 없습니다. T4 스크립트는 DTE 개체에 대한 참조를 갖고 있기 때문에 cmd 줄에서 실행하면 barfs가 실행됩니다.
또한 매크로 사용을 고려했지만 VS2012에서 매크로를 사용할 수 없으며 내 로컬 컴퓨터에 매크로 IDE를 실행할 수없는 버그가 있습니다. 그래서 이것은 좋은 짧은/장기 솔루션이 아닙니다.
최상의 솔루션은 빌드시 T4 파일을 실행하는 자체 플러그인을 작성하는 것 같습니다. 내가 가진 이것은까지입니다 :
- 프로젝트 TT에
- 실행 T4의 모든 T4 파일 찾기 :
public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) { _applicationObject = (DTE2)application; _addInInstance = (AddIn)addInInst; _applicationObject.Events.BuildEvents.OnBuildBegin += customBuildHander; } void customBuildHander(vsBuildScope Scope, vsBuildAction Action) { if (Scope == vsBuildScope.vsBuildScopeProject) { //Need to run steps 1 thru 3 here! } }
은 어떻게 든 위의 코드에 다음과 같은 루틴에 맞게 필요 파일, T4 파일에서 액세스 할 수 있도록 DTE 객체를 전달하는 동안
- T4 스크립트에서 읽을 수 있도록 $ (ProjectDir)과 같은 환경 변수도 선언합니다. < - DTE 또는 별도의 프로세스입니다.
도와주세요!
vscommands가이 작업을 수행 할 수있는 옵션이 있다고 생각하십니까? –
본 적이 있습니까 http://stackoverflow.com/questions/1646580/get-visual-studio-to-run-a-t4-template-on-every-build –
@AlexeiLevenkov 예, 모두 시도했지만, 내 t4 스크립트는 모든 DTE 및 환경 변수 참조에서 barfs를 사용합니다. – Alwyn