2012-10-16 3 views
3

ChildTemplate이라는 또 다른 T4 템플릿을 포함하는 ParentTemplate이라는 T4 템플릿이 있습니다. 아이디어는 내 ParentTemplate이 호출되고 ChildTemplate이 호출 될 때마다 파일을 생성한다는 것입니다. 그러나, 내 ParentTemplate 또한 필요하지 않은 파일 (.cs)을 만듭니다. ParentTemplate의 Build Action이 "None"으로 설정되고 Custom Tool이 "TextTemplatingFileGenerator"로 설정됩니다. 다음 코드는 ParentTemplate의 코드입니다.T4 템플릿은 원치 않는 출력 파일을 생성합니다.

<#@ template debug="false" hostspecific="true" language="C#" #> 
<#@ import namespace="System.IO" #> 
<# 
    for (int i = 0; i < 3; i++) 
    { 
#> 
<#@ include file="ChildTemplate.t4" #> 
<# 
    string filename = Path.Combine(path, String.Format("{0}i.txt", myFile)); 
    File.WriteAllText(filename, this.GenerationEnvironment.ToString()); 
    this.GenerationEnvironment.Remove(0, this.GenerationEnvironment.Length); 
    } 
#> 

ChildTemplate의 텍스트는 "Hello World"입니다. 그래서 내가 원하는 결과물은 "Hello World"라는 컨텐트를 가진 3 개의 .txt 파일이고 그게 전부입니다. ParentTemplate.cs와 같은 다른 파일은 없습니다.

어떻게 ParentTemplate.cs 생성을 막을 수 있습니까?

답변

4

Custom Tool 속성 값을 지우십시오.

0

here에서 다음과 같이하면 Visual Studio에서 생성기를 사용하는 .tt 파일의 출력 파일을 생성하지 않도록 속일 수 있습니다.

<#@ output extension="/" #> 

또는

<#@ output extension="\\" #> 

:이 해킹하고 여전히 경고를 생성합니다.
참고 : Custom Tool 속성 값을 지우면 원하는 템플릿이 실행되지 않으므로 템플릿을 모두 실행하지 않아도됩니다.

당신은 또한에 훨씬 더 원형 교차로 (시간이 많이 소요) 접근 방식을 취할 수

  • DTEEnv와 세대 동안 VSProject에서 파일을 제거 (만 사용할 수 비주얼 스튜디오 내에서 실행되는 경우).
  • 빌드 태스크를 사용하여 생성 후 항목을 제거하고 삭제하십시오 (MSBuild 사용).
관련 문제