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, installuninstall 하위 명령이 되었습니다.
  • --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 publishdotnet 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(.. /docs/core/tools/dotnet-new-sdk-templates.md#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 버전을 3.1.101로 설정하여 현재 디렉터리에 global.json을 만듭니다.

    dotnet new globaljson --sdk-version 3.1.101
    
  • C# 콘솔 애플리케이션 템플릿에 대한 도움말 표시:

    dotnet new console -h
    
  • F# 콘솔 애플리케이션 템플릿에 대한 도움말 표시:

    dotnet new console --language "F#" -h
    

참고 항목