.NET을 사용하면 프로젝트, 파일 및 리소스를 생성하는 템플릿을 만들고 배포할 수 있습니다. 이 자습서는 명령과 함께 dotnet new 사용할 템플릿을 만들고 설치하고 제거하는 방법을 학습하는 시리즈의 2부입니다.
팁 (조언)
.NET SDK와 함께 제공되는 공식 .NET 템플릿은 다음 리포지토리에서 찾을 수 있습니다.
| 템플릿 | 저장소 |
|---|---|
| 콘솔, 클래스 라이브러리 및 일반 항목 템플릿 | dotnet/sdk |
| ASP.NET 및 Blazor 템플릿 | dotnet/aspnetcore |
| 단일 페이지 애플리케이션 템플릿 ASP.NET | dotnet/spa-templates |
| WPF 템플릿 | dotnet/wpf |
| Windows Forms 템플릿 | dotnet/winforms |
| 테스트 템플릿 | dotnet/test-templates |
| MAUI 템플릿 | dotnet/maui |
명령을 실행하여 컴퓨터에 설치된 템플릿을 dotnet new list 볼 수 있습니다.
시리즈의 이 부분에서는 다음 방법을 알아봅니다.
- 프로젝트 템플릿의 리소스를 만듭니다.
- 템플릿 구성 폴더 및 파일을 만듭니다.
- 파일 경로에서 템플릿을 설치합니다.
- 항목 템플릿을 테스트합니다.
- 항목 템플릿을 제거합니다.
필수 조건
프로젝트 템플릿 만들기
프로젝트 템플릿은 사용자가 작업 코드 집합으로 쉽게 시작할 수 있도록 즉시 실행 가능한 프로젝트를 생성합니다. .NET에는 콘솔 애플리케이션 또는 클래스 라이브러리와 같은 몇 가지 프로젝트 템플릿이 포함되어 있습니다. 이 예제에서는 표준 "Hello World" 콘솔 출력을 비동기적으로 실행되는 출력으로 대체하는 새 콘솔 애플리케이션 프로젝트를 만듭니다.
터미널에서 working\content 폴더로 이동하고 consoleasync라는 새 하위 폴더를 만듭니다. 하위 폴더를 입력하고 실행 dotnet new console 하여 표준 콘솔 애플리케이션을 생성합니다. 이 템플릿에서 생성된 파일을 편집하여 새 템플릿을 만듭니다.
working
└───content
└───consoleasync
consoleasync.csproj
Program.cs
Program.cs 수정
Program.cs 파일을 엽니다. 표준 콘솔 프로젝트는 콘솔 출력에 비동기적으로 쓰지 않으므로 추가합니다. 코드를 다음으로 변경하고 파일을 저장합니다.
// See https://aka.ms/new-console-template for more information
await Console.Out.WriteAsync("Hello World with C#");
이제 템플릿의 콘텐츠를 만들었으므로 템플릿의 루트 폴더에 템플릿 구성을 만들어야 합니다.
템플릿 구성 만들기
이 자습서에서는 템플릿 폴더가 working\content\consoleasync에 있습니다.
템플릿은 템플릿 폴더의 루트에 특수 폴더 및 구성 파일이 있기 때문에 .NET에서 인식됩니다.
먼저 .template.config이라는 새 하위 폴더를 만들고 입력합니다. 그런 다음 template.json새 파일을 만듭니다. 폴더 구조는 다음과 같습니다.
working
└───content
└───consoleasync
└───.template.config
template.json
즐겨 찾는 텍스트 편집기를 사용하여template.json 열고 다음 json 코드에 붙여넣고 저장합니다.
{
"$schema": "http://json.schemastore.org/template",
"author": "Me",
"classifications": [ "Common", "Console" ],
"identity": "ExampleTemplate.AsyncProject",
"name": "Example templates: async project",
"shortName": "consoleasync",
"sourceName":"consoleasync",
"tags": {
"language": "C#",
"type": "project"
}
}
이 구성 파일에는 템플릿에 대한 모든 설정이 포함되어 있습니다. 기본 설정(예: name 및 shortName)을 볼 수 있지만, 또한 tags/type 값은 project로 설정되어 있습니다. 이렇게 하면 템플릿이 "프로젝트" 템플릿으로 분류됩니다. 만드는 템플릿 유형에는 제한이 없습니다.
item 및 project 값은 사용자가 찾고자 하는 템플릿 유형을 쉽게 필터링할 수 있도록 .NET에서 권장하는 일반적으로 사용되는 이름들입니다.
sourceName 항목은 사용자가 템플릿을 사용할 때 대체되는 항목입니다. 구성 파일의 sourceName 값은 모든 파일 이름 및 파일 콘텐츠에서 검색되며, 기본적으로 현재 폴더의 이름으로 대체됩니다. 명령과 -n 함께 --name 매개 변수를 전달하면 dotnet new 제공된 값이 현재 폴더 이름 대신 사용됩니다. 이 템플릿 consoleasync 의 경우 .csproj 파일의 이름으로 바뀝니다.
항목은 classifications 템플릿 목록을 실행하고 가져올 때 표시되는 dotnet new 열을 나타냅니다. 사용자는 분류 태그를 기반으로 검색할 수도 있습니다.
tags 파일의 속성을 태그 목록과 classifications 혼동하지 마세요. 아쉽게도 이름이 같은 두 가지 개념입니다.
template.json 파일의 전체 스키마는 JSON 스키마 저장소에서 찾을 수 있으며 template.json참조에 설명되어 있습니다.
template.json 파일에 대한 자세한 내용은 dotnet templating wiki를 참조하세요.
이제 유효한 .template.config/template.json 파일이 있으므로 템플릿을 설치할 준비가 되었습니다. 템플릿을 설치하기 전에 bin 또는 obj 폴더와 같이 템플릿에 포함하지 않으려는 추가 폴더 및 파일을 삭제해야 합니다. 터미널에서 consoleasync 폴더로 이동하고 실행 dotnet new install .\ 하여 현재 폴더에 있는 템플릿을 설치합니다. Linux 또는 macOS 운영 체제를 사용하는 경우 슬래시 dotnet new install ./를 사용합니다.
dotnet new install .\
이 명령은 설치된 템플릿 목록을 출력합니다. 여기에는 사용자의 템플릿이 포함되어야 합니다.
The following template packages will be installed:
<root path>\working\content\consoleasync
Success: <root path>\working\content\consoleasync installed the following templates:
Templates Short Name Language Tags
-------------------------------------------- ------------------- ------------ ----------------------
Example templates: async project consoleasync [C#] Common/Console
프로젝트 템플릿 테스트
이제 프로젝트 템플릿이 설치되었으므로 테스트합니다.
테스트 폴더로 이동합니다.
다음 명령을 사용하여 새 콘솔 애플리케이션을 만듭니다. 이 명령은 명령으로
dotnet run쉽게 테스트할 수 있는 작업 프로젝트를 생성합니다.dotnet new consoleasync -n MyProject다음 출력이 표시됩니다.
The template "Example templates: async project" was created successfully.다음 명령을 사용하여 프로젝트를 실행합니다.
dotnet run다음 출력이 표시됩니다.
Hello World with C#
축하합니다! .NET을 사용하여 프로젝트 템플릿을 만들고 배포했습니다. 이 자습서 시리즈의 다음 부분을 준비하기 위해 만든 템플릿을 제거합니다. 테스트 폴더의 모든 파일도 삭제해야 합니다. 그러면 이 자습서 시리즈의 다음 부분에 대한 준비가 완료된 상태로 돌아갑니다.
템플릿 제거
터미널에서 consoleasync 폴더로 이동하고 다음 명령을 실행하여 현재 폴더에 있는 템플릿을 제거합니다.
-
Windows에서:
dotnet new uninstall .\ -
Linux 또는 macOS에서:
dotnet new uninstall ./
이 명령은 제거된 템플릿 목록을 출력합니다. 여기에는 사용자의 템플릿이 포함되어야 합니다.
Success: <root path>\working\content\consoleasync was uninstalled.
언제든지 설치된 템플릿 패키지 목록을 볼 수 있습니다 dotnet new uninstall . 여기에는 각 템플릿 패키지에 대한 제거 명령이 포함됩니다.
다음 단계
이 자습서에서는 프로젝트 템플릿을 만들었습니다. 항목과 프로젝트 템플릿을 모두 사용하기 쉬운 파일로 패키지하는 방법을 알아보려면 이 자습서 시리즈를 계속 진행하세요.
.NET