Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

.tt

  • TextTransform .exe

    • https://learn.microsoft.com/ko-kr/visualstudio/modeling/generating-files-with-the-texttransform-utility?view=vs-2022
    • \Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE
    • \Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE
    • \Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE
  • T4 Text Template Transformation Toolkit

https://learn.microsoft.com/ko-kr/visualstudio/modeling/code-generation-and-t4-text-templates?view=vs-2022

package System.CodeDom

Custom Tool
Runtime Text TempalteTextTemplatingFilePreprocessorC#에서 템플릿 파일명을 클래스명으로 접근 가능
Text TemplateTextTemplatingFileGenerator

T4를 이용한 INotifyPropertyChanged 코드 자동 생성

Liquid https://shopify.github.io/liquid/ https://github.com/lekman/AzureLiquid

<!-- 
Ref: https://learn.microsoft.com/en-us/visualstudio/msbuild/item-element-msbuild?view=vs-2022#attributes

-->

  <ItemGroup>
  
    <None Update="TextTemplate1.tt">
      <Generator>TextTemplatingFileGenerator</Generator>
      <LastGenOutput>TextTemplate1.txt</LastGenOutput>
    </None>
    <None Update="TextTemplate1.txt">
      <DesignTime>True</DesignTime>
      <AutoGen>True</AutoGen>
      <DependentUpon>TextTemplate1.tt</DependentUpon>
    </None>
  </ItemGroup>

  <ItemGroup>
    <Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" />
  </ItemGroup>
TextTemplatingFilePreprocessor RuntimeTextTemplate1.cs
<Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" />
True True RuntimeTextTemplate1.tt ## 디버깅
  • Solution Explorer > .tt > 우클릭 > Debug T4 Template
  • 혹은
<#@ template debug="true" hostSpecific="true" #>
<#@ import namespace="System.Diagnostics" #>
<# Debugger.Launch(); #>

DBCSCodePageEncoding은 Double Byte Character Set (DBCS) 코드 페이지 인코딩을

<#@ DirectiveName [AttributeName = "AttributeValue"] ... #> <# Standard control blocks #> 문장을 포함할 수 있습니다. <#= Expression control blocks # >표현식을 포함할 수 있습니다. <#+ Class feature control blocks #>메서드, 필드, 속성을 포함할 수 있습니다.

https://marketplace.visualstudio.com/items?itemName=bricelam.T4Language https://github.com/bricelam/T4Language

https://marketplace.visualstudio.com/items?itemName=bricelam.VSDataSqlite https://github.com/bricelam/VS.Data.Sqlite

<#@ template debug="false" hostspecific="false" language="C#" #> <#@ output extension=".cs" #>

hostspecific="true": 템플릿에서 호스트 애플리케이션의 환경 정보, 파일 경로 등 호스트와 관련된 정보를 사용할 수 있습니다. // ex) 템플릿이 실행되는 디렉터리 경로를 가져옴