dotnet new <템플릿>
이 문서의 적용 대상: ✔️ .NET Core 3.1 SDK 이상 버전
이름
dotnet new
- 지정된 템플릿을 기반으로 새 프로젝트, 구성 파일 또는 솔루션을 만듭니다.
개요
dotnet new <TEMPLATE> [--dry-run] [--force] [-lang|--language {"C#"|"F#"|VB}]
[-n|--name <OUTPUT_NAME>] [-f|--framework <FRAMEWORK>] [--no-update-check]
[-o|--output <OUTPUT_DIRECTORY>] [--project <PROJECT_PATH>]
[-d|--diagnostics] [--verbosity <LEVEL>] [Template options]
dotnet new -h|--help
설명
dotnet new
명령은 템플릿을 기반으로 .NET 프로젝트 또는 다른 아티팩트를 만듭니다.
이 명령은 템플릿 엔진을 호출하여 지정된 템플릿 및 옵션을 기반으로 디스크에 아티팩트를 만듭니다.
참고 항목
.NET 7 SDK부터 dotnet new
구문이 변경되었습니다.
--list
,--search
,--install
및--uninstall
옵션이list
,search
,install
및uninstall
하위 명령이 되었습니다.--update-apply
옵션이update
하위 명령이 되었습니다.--update-check
를 사용하려면--check-only
옵션과 함께update
하위 명령을 사용합니다.
이전에 사용 가능했던 다른 옵션은 해당 하위 명령과 함께 계속 사용할 수 있습니다.
각 하위 명령에 대한 별도의 도움말은 -h
또는 --help
옵션을 통해 사용할 수 있습니다. dotnet new <subcommand> --help
는 하위 명령에 대해 지원되는 모든 옵션을 나열합니다.
또한 이제 dotnet new
에 대한 탭 완료 기능을 사용할 수 있습니다. 설치된 템플릿 이름과 선택한 템플릿이 제공하는 옵션에 대한 완료 기능을 지원합니다.
.NET SDK에 대한 탭 완료를 사용하도록 설정하려면 탭 완료 사용을 참조하세요.
탭 완료
.NET SDK 7.0.100부터 dotnet new
에 탭 완료 기능을 사용할 수 있습니다. 설치된 템플릿 이름에 대한 완료는 물론 선택한 템플릿이 제공하는 옵션에 대한 완료도 지원합니다.
.NET SDK에 대한 탭 완료를 사용하도록 설정하려면 탭 완료 사용을 참조하세요.
암시적 복원
dotnet new
, dotnet build
, dotnet run
, dotnet test
, dotnet publish
및 dotnet pack
등 복원이 필요한 모든 명령에 의해 암시적으로 실행되므로 dotnet restore
를 실행할 필요가 없습니다. 암시적 복원을 사용하지 않으려면 --no-restore
옵션을 사용합니다.
dotnet restore
명령은 Azure DevOps Services의 연속 통합 빌드 또는 복원 발생 시점을 명시적으로 제어해야 하는 빌드 시스템과 같이 명시적으로 복원이 가능한 특정 시나리오에서 여전히 유용합니다.
NuGet 피드를 관리하는 방법에 대한 자세한 내용은 dotnet restore
설명서를 참조하세요.
인수
TEMPLATE
명령이 호출될 때 인스턴스화할 템플릿입니다. 각 템플릿에는 전달할 수 있는 특정 옵션이 있을 수 있습니다. 자세한 내용은 템플릿 옵션을 참조하세요.
dotnet new list
를 실행하여 설치된 모든 템플릿의 목록을 볼 수 있습니다..NET Core 3.0 SDK부터 .NET SDK 5.0.300까지 CLI는 다음 조건에서
dotnet new
명령을 호출할 때 NuGet.org에서 템플릿을 검색합니다.dotnet new
를 호출할 때 CLI가 템플릿 일치 또는 부분 일치조차 찾을 수 없는 경우.- 최신 버전의 템플릿을 사용할 수 있는 경우. 이 경우 프로젝트 또는 아티팩트가 만들어지지만 CLI는 업데이트된 템플릿 버전에 대해 경고합니다.
.NET SDK 5.0.300부터 NuGet.org에서 템플릿을 검색하려면
search
명령을 사용해야 합니다.
다음 표에는 .NET SDK와 함께 사전 설치된 템플릿이 나와 있습니다. 템플릿의 기본 언어는 대괄호 안에 표시됩니다. 특정 템플릿 옵션을 보려면 약식 이름 링크를 클릭합니다.
템플릿 | 짧은 이름 | 언어 | 태그 | 도입 |
---|---|---|---|---|
콘솔 애플리케이션 | console |
[C#], F#, VB | 일반/콘솔 | 1.0 |
클래스 라이브러리 | classlib |
[C#], F#, VB | 일반/라이브러리 | 1.0 |
WPF 애플리케이션 | wpf |
[C#], VB | 일반/WPF | 3.0(VB의 경우 5.0) |
WPF 클래스 라이브러리 | wpflib |
[C#], VB | 일반/WPF | 3.0(VB의 경우 5.0) |
WPF 사용자 지정 컨트롤 라이브러리 | wpfcustomcontrollib |
[C#], VB | 일반/WPF | 3.0(VB의 경우 5.0) |
WPF 사용자 컨트롤 라이브러리 | wpfusercontrollib |
[C#], VB | 일반/WPF | 3.0(VB의 경우 5.0) |
Windows Forms(WinForms) 애플리케이션 | winforms |
[C#], VB | 일반/WinForms | 3.0(VB의 경우 5.0) |
Windows Forms(WinForms) 클래스 라이브러리 | winformslib |
[C#], VB | 일반/WinForms | 3.0(VB의 경우 5.0) |
Worker Service | worker |
[C#] | 일반/Worker/웹 | 3.0 |
단위 테스트 프로젝트 | mstest |
[C#], F#, VB | Test/MSTest | 1.0 |
NUnit 3 테스트 프로젝트 | nunit |
[C#], F#, VB | Test/NUnit | 2.1.400 |
NUnit 3 테스트 항목 | nunit-test |
[C#], F#, VB | Test/NUnit | 2.2 |
xUnit 테스트 프로젝트 | xunit |
[C#], F#, VB | Test/xUnit | 1.0 |
Razor 구성 요소 | razorcomponent |
[C#] | Web/ASP.NET | 3.0 |
Razor 페이지 | page |
[C#] | Web/ASP.NET | 2.0 |
MVC ViewImports | viewimports |
[C#] | Web/ASP.NET | 2.0 |
MVC ViewStart | viewstart |
[C#] | Web/ASP.NET | 2.0 |
Blazor 웹앱 | blazor |
[C#] | Web/Blazor | 8.0.100 |
BlazorWebAssembly 독립 실행형 앱 | blazorwasm |
[C#] | 웹/Blazor//WebAssemblyPWA | 3.1.300 |
ASP.NET Core 비어 있음 | web |
[C#], F# | Web/Empty | 1.0 |
ASP.NET Core 웹앱(모델-뷰-컨트롤러) | mvc |
[C#], F# | Web/MVC | 1.0 |
ASP.NET Core 웹앱 | webapp, razor |
[C#] | Web/MVC/Razor Pages | 2.2, 2.0 |
Razor 클래스 라이브러리 | razorclasslib |
[C#] | Web/Razor/Library/Razor 클래스 라이브러리 | 2.1 |
ASP.NET Core 웹 API | webapi |
[C#], F# | 웹/웹 API/API/서비스/WebAPI | 1.0 |
ASP.NET Core API | webapiaot |
[C#] | 웹/웹 API/API/서비스 | 8.0 |
ASP.NET Core API 컨트롤러 | apicontroller |
[C#] | Web/ASP.NET | 8.0 |
ASP.NET Core gRPC 서비스 | grpc |
[C#] | Web/gRPC | 3.0 |
dotnet gitignore 파일 | gitignore |
Config | 3.0 | |
global.json 파일 | globaljson |
Config | 2.0 | |
NuGet 구성 | nugetconfig |
Config | 1.0 | |
Dotnet 로컬 도구 매니페스트 파일 | tool-manifest |
Config | 3.0 | |
웹 구성 | webconfig |
Config | 1.0 | |
솔루션 파일 | sln |
솔루션 | 1.0 | |
프로토콜 버퍼 파일 | proto |
Web/gRPC | 3.0 | |
EditorConfig file | editorconfig |
Config | 6.0 |
다음 표에서는 .NET SDK를 사용하여 중단되고 더 이상 사전 설치되지 않은 템플릿을 보여 줍니다. 특정 템플릿 옵션을 보려면 약식 이름 링크를 클릭합니다.
템플릿 | 짧은 이름 | 언어 | 태그 | 이후 중단됨 |
---|---|---|---|---|
ASP.NET Core(Angular 사용) | angular |
[C#] | Web/MVC/SPA | 8.0 |
ASP.NET Core(React.js 사용) | react |
[C#] | Web/MVC/SPA | 8.0 |
Blazor 서버 앱 | blazorserver |
[C#] | Web/Blazor | 8.0 |
Blazor 서버 앱이 비어 있음 | blazorserver-empty |
[C#] | Web/Blazor | 8.0 |
BlazorWebAssembly 앱이 비어 있음 | blazorwasm-empty |
[C#] | Web/Blazor/WebAssembly | 8.0 |
옵션
--dry-run
지정된 명령이 실행되어 템플릿 만들기로 이어질 경우 발생하는 작업에 대한 요약을 표시합니다. .NET Core 2.2 SDK부터 사용할 수 있습니다.
--force
기존 파일을 변경할 경우에도 콘텐츠를 강제 생성합니다. 선택한 템플릿이 출력 디렉터리의 기존 파일을 재정의하는 경우에 필요합니다.
-?|-h|--help
명령에 대한 도움말을 출력합니다.
dotnet new
명령 자체 또는 템플릿에 대해 호출될 수 있습니다. 예:dotnet new mvc --help
.-lang|--language {C#|F#|VB}
만들 템플릿의 언어입니다. 허용되는 언어는 템플릿에 따라 다릅니다(인수 섹션에서 기본값 참조). 일부 템플릿의 경우 유효하지 않습니다.
참고 항목
일부 셸은
#
을 특수 문자로 해석합니다. 이러한 경우 언어 매개 변수 값을 따옴표로 묶습니다. 예:dotnet new console -lang "F#"
.-n|--name <OUTPUT_NAME>
생성된 출력에 대한 이름입니다. 이름을 지정하지 않으면 현재 디렉터리의 이름이 사용됩니다.
-f|--framework <FRAMEWORK>
대상 프레임워크를 지정합니다. TFM(대상 프레임워크 모니커)이 필요합니다. 예: "net6.0", "net7.0-macos". 이 값은 프로젝트 파일에 반영됩니다.
-no-update-check
템플릿을 인스턴스화할 때 템플릿 패키지 업데이트 확인을 사용하지 않도록 설정합니다. .NET SDK 6.0.100부터 사용 가능합니다.
dotnet new --install
을 사용하여 설치된 템플릿 패키지에서 템플릿을 인스턴스화할 때dotnet new
는 템플릿에 대한 업데이트가 있는지 확인합니다. .NET 6부터는 .NET 기본 템플릿에 대한 업데이트 검사가 수행되지 않습니다. .NET 기본 템플릿을 업데이트하려면 .NET SDK의 패치 버전을 설치합니다.-o|--output <OUTPUT_DIRECTORY>
생성된 출력을 배치할 위치입니다. 기본값은 현재 디렉터리입니다.
--project <PROJECT_PATH>
템플릿이 추가되는 프로젝트입니다. 이 프로젝트는 컨텍스트 평가에 사용됩니다. 지정하지 않으면 현재 또는 부모 디렉터리의 프로젝트가 사용됩니다. .NET SDK 7.0.100부터 사용 가능합니다.
-d|--diagnostics
진단 출력을 사용합니다. .NET SDK 7.0.100부터 사용 가능합니다.
-v|--verbosity <LEVEL>
명령의 세부 정보 표시 수준을 설정합니다. 허용되는 값은
q[uiet]
,m[inimal]
,n[ormal]
및diag[nostic]
입니다. .NET SDK 7.0.100부터 사용 가능합니다.
템플릿 옵션
각 템플릿에는 추가 옵션이 정의되어 있을 수 있습니다. 자세한 내용은 dotnet new
용 .NET 기본 템플릿을 참조하세요.
예제
C# 콘솔 애플리케이션 프로젝트를 만듭니다.
dotnet new console
현재 디렉터리에 F# 콘솔 애플리케이션 프로젝트를 만듭니다.
dotnet new console --language "F#"
지정된 디렉터리에 .NET Standard 2.0 클래스 라이브러리 프로젝트를 만듭니다.
dotnet new classlib --framework "netstandard2.0" -o MyLibrary
인증 없이 현재 디렉터리에 새 ASP.NET Core C# MVC 프로젝트를 만듭니다.
dotnet new mvc -au None
새 xUnit 프로젝트를 만듭니다.
dotnet new xunit
현재 디렉터리에서 SDK 버전을 8.0.101로 설정하는 global.json 만듭니다.
dotnet new globaljson --sdk-version 8.0.101 --roll-forward latestFeature
C# 콘솔 애플리케이션 템플릿에 대한 도움말 표시:
dotnet new console -h
F# 콘솔 애플리케이션 템플릿에 대한 도움말 표시:
dotnet new console --language "F#" -h
참고 항목
.NET