텍스트 템플릿 변환 프로세스는 텍스트 템플릿 파일을 입력으로 사용하고 텍스트 파일을 출력으로 생성합니다. Visual Studio 확장 또는 Visual Studio가 설치된 컴퓨터에서 실행되는 독립 실행형 애플리케이션에서 텍스트 변환 엔진을 호출할 수 있습니다. 그러나 텍스트 템플릿 호스트를 제공해야 합니다. 이 클래스는 템플릿을 환경에 연결하고, 어셈블리 및 포함 파일과 같은 리소스를 찾고, 출력 및 오류 메시지를 처리합니다.
팁 (조언)
Visual Studio 내에서 실행되는 패키지 또는 확장을 작성하는 경우 자체 호스트를 작성하는 대신 텍스트 템플릿 서비스를 사용하는 것이 좋습니다. 자세한 내용은 VS 확장에서 텍스트 변환 호출을 참조하세요.
비고
서버 애플리케이션에서 텍스트 템플릿 변환을 사용하지 않는 것이 좋습니다. 단일 스레드를 제외하고 텍스트 템플릿 변환을 사용하지 않는 것이 좋습니다. 이는 텍스트 템플릿 엔진이 단일 AppDomain을 다시 사용하여 템플릿을 번역, 컴파일 및 실행하기 때문입니다. 번역된 코드는 스레드로부터 안전하도록 설계되지 않았습니다. 엔진은 디자인 타임에 Visual Studio 프로젝트에 있는 것처럼 파일을 직렬로 처리하도록 설계되었습니다.
런타임 애플리케이션의 경우 전처리된 텍스트 템플릿을 사용하는 것이 좋습니다. T4 텍스트 템플릿을 사용하여Run-Time 텍스트 생성을 참조하세요.
애플리케이션이 컴파일 시간에 고정된 템플릿 집합을 사용하는 경우 전처리된 텍스트 템플릿을 사용하는 것이 더 쉽습니다. Visual Studio가 설치되지 않은 컴퓨터에서 애플리케이션이 실행되는 경우에도 이 방법을 사용할 수 있습니다. 자세한 내용은 T4 텍스트 템플릿을 사용하여Run-Time 텍스트 생성을 참조하세요.
애플리케이션에서 텍스트 템플릿 실행
텍스트 템플릿을 실행하려면 다음의 ProcessTemplate 메서드를 Microsoft.VisualStudio.TextTemplating.Engine호출합니다.
using Microsoft.VisualStudio.TextTemplating;
...
Engine engine = new Engine();
string output = engine.ProcessTemplate(templateString, host);
애플리케이션은 템플릿을 찾아서 제공해야 하며 출력을 처리해야 합니다.
host 매개 변수에서 ITextTemplatingEngineHost를 구현하는 클래스를 제공해야 합니다. 이는 엔진에 의해 다시 호출됩니다.
호스트는 오류를 기록하고, 어셈블리에 대한 참조를 해결하고, 파일을 포함하고, 템플릿을 실행할 수 있는 애플리케이션 도메인을 제공하고, 각 지시문에 대한 적절한 프로세서를 호출할 수 있어야 합니다.
Microsoft.VisualStudio.TextTemplating.Engine 는 Microsoft.VisualStudio.TextTemplating.*.0.dll정의되며 , ITextTemplatingEngineHost 는 Microsoft.VisualStudio.TextTemplating.Interfaces.*.0.dll정의됩니다 .
이 부분에서는
연습: 사용자 지정 텍스트 템플릿 호스트 만들기 에서는 Visual Studio 외부에서 텍스트 템플릿 기능을 사용할 수 있도록 하는 사용자 지정 텍스트 템플릿 호스트를 만드는 방법을 보여 줍니다.
Reference
관련 콘텐츠
- 텍스트 템플릿 변환 프로세스는 텍스트 변환의 작동 방식과 사용자 지정할 수 있는 부분을 설명합니다.
- 사용자 지정 T4 텍스트 템플릿 지시문 프로세서 만들기는 텍스트 템플릿 지시문 프로세서에 대한 개요를 제공합니다.