2013-03-08 3 views
1

내 C# dtos를 기반으로 typescript dto 파일을 만드는 t4 템플릿을 만들었습니다. 생성 과정에서 생성 된 ts 파일을 js 파일로 컴파일하여 솔루션에 추가하려고합니다. ts 파일을 저장하면 웹 필수 기능이 저에게 도움이됩니다.t4 템플릿에서 typescript 파일 컴파일

내 초기 생각은 어떻게 든 저장 이벤트를 트리거하는 것이 었습니다.

EnvDTE.DTE dte = (EnvDTE.DTE) ((IServiceProvider) this.Host).GetService(typeof(EnvDTE.DTE)); 
dte.OpenFile(EnvDTE.Constants.vsViewKindAny, outputFilePath); 

파일을 저장하고 (컴파일을 트리거하기 위해) 다시 닫습니다. 그러나 나는 이것을 작동시킬 수 없다.

나를위한 아이디어가 있습니까?

+0

이 보인다 :

나는 다음과 같은 코드로 컴파일러를 시작했다? –

+0

당신이 맞을지 모르지만 여전히 할 수 있는지 아는 것이 재미있을 것입니다. – Julius

+0

@Julius : 어떻게했는지 설명해 주시겠습니까? – jgauffin

답변

1

필자는 Ryan Cavanaugh가 제안한대로 끝내고 컴파일러를 호출했습니다. 나는 Olegs tips for creating more than one output for a template을 사용하여 생성 된 파일을 프로젝트 및 tt 템플릿에 추가했습니다. 그냥 직접 tsc.exe를 호출 할 방법이 쉬울 것 같은

<#+ 
void CompileTypeScriptFile(string fullFileName) 
{ 
    var process = new System.Diagnostics.Process 
    { 
     StartInfo = new ProcessStartInfo 
     { 
      FileName = "tsc.exe", 
      Arguments = "--target ES5 \"" + fullFileName + "\"" 

     } 
    }; 
    process.Start(); 
    process.WaitForExit(); 
} 
#> 
0

올바른 방법은 T4 템플릿을 실행하고 출력을 컴파일하는 별도의 빌드 대상 (또는 작업)을 만드는 것입니다. T4는 이에 적합하지 않습니다.

+0

어떻게 할 수 있습니까? 프로젝트의 모든 ts 파일을 다시 컴파일하고 싶지는 않습니다 (looooong까지 걸립니다). – Julius

0

T4Toolbox을 사용하면 T4 파일을 .ts 파일과 연결할 수 있습니다. Visual Studio 속성 창에 "사용자 지정 도구 서식 파일"을 추가하고 .ts 파일을 저장할 때마다 자동으로 서식 파일을 변환하는 T4Toolbox.TemplatedFileGenerator라는 사용자 지정 도구를 제공합니다. T4Toolbox의 output management 기능을 사용하여 생성 된 .js 파일을 솔루션의 원하는 위치에 추가 할 수 있습니다.

관련 문제