Share via


코드 생성 및 텍스트 템플릿의 새로운 기능

Visual Studio 텍스트 템플릿을 사용하면 응용 프로그램의 코드와 리소스를 생성하고 런타임에 모든 종류의 텍스트 파일이나 문서도 생성할 수 있습니다.

SP1(서비스 팩 1)의 새로운 기능

Visual Studio 2010 SP1을 설치하여 다음 기능을 가져올 수 있습니다.

  • 어셈블리 디버깅
    텍스트 템플릿에서 디버깅할 어셈블리를 로드하면 어렵지 않게 어셈블리를 다시 빌드할 수 있습니다.

    SP1 이전 버전의 Visual Studio에서는 템플릿에서 최근에 로드한 어셈블리의 경우 템플릿이 해당 어셈블리를 잠그기 때문에 빌드하기가 어려운 경우가 가끔 있습니다. SP1부터는 원본 어셈블리가 잠기지 않도록 템플릿에서 어셈블리의 복사본을 로드합니다. 어셈블리를 다시 빌드하면 다음에 템플릿을 실행할 때 어셈블리의 새 복사본이 다시 로드됩니다. 자세한 내용은 T4 Assembly 지시문을 참조하십시오.

  • 텍스트 템플릿 간 상속
    여러 변형에 공통된 텍스트 블록의 프레임워크가 들어 있는 텍스트 템플릿을 정의할 수 있습니다. 변형 템플릿은 공통 템플릿에서 상속할 수 있습니다. 예제 및 자세한 내용을 보려면 T4 템플릿 지시문전처리 T4 텍스트 템플릿을 사용하여 런타임 텍스트 생성을 참조하십시오.

Visual Studio 2010의 새 기능 및 향상된 기능

기능

항목

전처리된 텍스트 템플릿: 응용 프로그램에서 런타임에 텍스트 파일을 생성하는 간편한 방법을 제공합니다.

전처리 T4 텍스트 템플릿을 사용하여 런타임 텍스트 생성

빌드 통합: 생성된 프로그램 파일이 소스 파일이나 모델을 기준으로 최신 상태를 유지하도록 합니다. 이 기능은 Domain-Specific Language Tools를 설치한 경우 사용할 수 있습니다.

빌드 프로세스의 코드 생성

MsBuild의 텍스트 변환 작업: Visual Studio 명령줄에서 프로젝트를 빌드할 때 프로젝트의 특정 파일을 변환할 수 있도록 합니다.

TextTransform.exe를 호출하는 스크립트가 있는 경우 이 방법의 융통성이 더 크다는 것을 확인할 수 있습니다.

빌드 프로세스의 코드 생성

Visual Studio Modelbus 지원: 텍스트 템플릿에서 여러 모델에 액세스하는 표준 방법을 제공합니다.

Microsoft.VisualStudio.TextTemplating.Modeling.ModelBusEnabledTextTransformation

DSL과 모델의 구분: 두 기능이 원래 동시에 도입되었지만 텍스트 템플릿을 사용하는 데 도메인별 언어가 필요하지 않습니다. 텍스트 템플릿과 파일 생성은 Visual Studio의 기본 제공 부분입니다.

도메인별 언어에서 코드 생성

서비스 공급자 액세스: ModelingTextTransform의 속성에서 사용할 수 있습니다.

T4 텍스트 템플릿 유틸리티 메서드

환경에 대한 액세스: 텍스트 템플릿 지시문에서는 $(ProjectDir)와 같은 Visual Studio 매크로나 %ProgramFiles%와 같은 Windows 환경 변수를 사용할 수 있습니다.

T4 텍스트 템플릿 지시문

사용자 지정의 변경 사항

텍스트 템플릿 프로세스를 사용자 지정한 경우 사용자에게 영향을 미칠 수 있는 향상된 기능은 다음과 같습니다.

기능

항목

네임스페이스 및 어셈블리 변경: 일부 형식이 Microsoft.VisualStudio.TextTemplating.Interfaces 어셈블리로 이동했습니다.

연습: 사용자 지정 지시문 프로세서 만들기

연습: 사용자 지정 텍스트 템플릿 호스트 만들기

세션 사전: 텍스트 템플릿이 실행되는 응용 프로그램 도메인으로 전달되는 serialize된 사전입니다. 세션 사전은 텍스트 템플릿 호스트에서 데이터를 텍스트 템플릿 코드로 전달하는 표준 방법을 제공합니다.

연습: 사용자 지정 텍스트 템플릿 호스트 만들기

Visual Studio 2008 이후의 기타 변경 내용

텍스트 템플릿에서 참조되는 어셈블리

현재 프로젝트의 참조는 더 이상 어셈블리를 찾는 데 사용되지 않습니다.

어셈블리 지시문에서 필요한 어셈블리의 위치를 명시적으로 지정하십시오.

$(ProjectDir)와 같은 Visual Studio 매크로나 %ProgramFiles%와 같은 Windows 환경을 어셈블리 위치의 일부로 사용할 수 있습니다.

텍스트 변환 어셈블리

텍스트 템플릿을 사용하기 위해 참조해야 할 수 있는 어셈블리에는 모두 다음과 같이 접미사 "10.0"이 포함되어 있습니다.

  • Microsoft.VisualStudio.TextTemplating.10.0.dll

  • Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll

  • Microsoft.VisualStudio.TextTemplating.Vshost.10.0.dll

  • Microsoft.VisualStudio.TextTemplating.Modeling.10.0.dll

네임스페이스

"Microsoft.VisualStudio.TextTemplating.Interfaces" 네임스페이스가 없습니다. Visual Studio 2010 Beta2 릴리스에서 변경된 사항입니다.

디버거 시작

텍스트 템플릿에서 디버거를 시작하려면 실행을 단계별로 시작할 지점에서 이 호출을 삽입합니다.

System.Diagnostics.Debugger.Launch();

이후의 중단점에서 디버거로 돌아가려면 다음을 호출합니다.

System.Diagnostics.Debugger.Break();

기본 언어 버전

텍스트 템플릿을 컴파일하는 데 항상 최신 버전(4)의 컴파일러가 사용됩니다. Visual Studio 2008에서 기본 컴파일러는 2.0이지만 <#@ template language="VBv3.5" #>와 같은 최신 버전의 템플릿 프로그래밍 언어를 지정할 수 있습니다. Visual Studio 2010에서는 버전 번호가 무시되고 경고가 보고됩니다. 두 버전의 Visual Studio에서 사용할 템플릿이 있는 경우 경고를 무시해도 됩니다.

참고 항목

개념

Visual Studio 2010의 새로운 기능