다음을 통해 공유


ASP.NET Core 디렉터리 구조

참고 항목

이 문서의 최신 버전은 아닙니다. 현재 릴리스는 이 문서의 .NET 9 버전을 참조 하세요.

Warning

이 버전의 ASP.NET Core는 더 이상 지원되지 않습니다. 자세한 내용은 .NET 및 .NET Core 지원 정책을 참조 하세요. 현재 릴리스는 이 문서의 .NET 8 버전을 참조 하세요.

Important

이 정보는 상업적으로 출시되기 전에 실질적으로 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적, 또는 묵시적인 보증을 하지 않습니다.

현재 릴리스는 이 문서의 .NET 9 버전을 참조 하세요.

게시 디렉터리에는 dotnet 게시 명령에 의해 생성된 앱의 배포 가능한 자산이 포함되어 있습니다. 디렉터리에는 다음이 포함됩니다.

  • 애플리케이션 파일
  • 구성 파일
  • 정적 자산
  • 패키지
  • 런타임(자체 포함 배포만 해당)
앱 형식 디렉터리 구조
프레임워크 종속 실행 파일
  • publish†
    • Views† MVC 앱, 뷰가 미리 컴파일되지 않은 경우
    • Pages† MVC 또는 Razor Pages 앱, 페이지가 미리 컴파일되지 않은 경우
    • wwwroot†
    • *.dll 파일
    • {ASSEMBLY NAME}.deps.json
    • {ASSEMBLY NAME}.dll
    • Windows의 {ASSEMBLY NAME}{.EXTENSION}.exe 확장, macOS 또는 Linux에 확장 없음
    • {ASSEMBLY NAME}.pdb
    • {ASSEMBLY NAME}.runtimeconfig.json
    • web.config(IIS 배포)
    • createdump(Linux createdump 유틸리티)
    • *.so(Linux 공유 개체 라이브러리)
    • *.a(macOS 아카이브)
    • *.dylib(macOS 동적 라이브러리)
SCD(자체 포함 배포)
  • publish†
    • Views† MVC 앱, 뷰가 미리 컴파일되지 않은 경우
    • Pages† MVC 또는 Razor Pages 앱, 페이지가 미리 컴파일되지 않은 경우
    • wwwroot†
    • *.dll 파일
    • {ASSEMBLY NAME}.deps.json
    • {ASSEMBLY NAME}.dll
    • Windows의 {ASSEMBLY NAME}{.EXTENSION} .exe 확장, macOS 또는 Linux에 확장 없음
    • {ASSEMBLY NAME}.pdb
    • {ASSEMBLY NAME}.runtimeconfig.json
    • web.config(IIS 배포)

†디렉터리를 나타냄

publish 디렉터리는 배포의 애플리케이션 기본 경로라고도 하는 콘텐츠 루트 경로를 나타냅니다. 서버에 배포된 앱의 publish 디렉터리에 어떤 이름을 지정하더라도 해당 위치는 호스트된 앱에 대한 서버의 실제 경로로 사용됩니다.

wwwroot 디렉터리(있는 경우)에는 정적 자산만 포함됩니다.

추가 리소스

게시 디렉터리에는 dotnet 게시 명령에 의해 생성된 앱의 배포 가능한 자산이 포함되어 있습니다. 디렉터리에는 다음이 포함됩니다.

  • 애플리케이션 파일
  • 구성 파일
  • 정적 자산
  • 패키지
  • 런타임(자체 포함 배포만 해당)
앱 형식 디렉터리 구조
프레임워크 종속 실행 파일
  • publish†
    • Views† MVC 앱, 뷰가 미리 컴파일되지 않은 경우
    • Pages† MVC 또는 Razor Pages 앱, 페이지가 미리 컴파일되지 않은 경우
    • wwwroot†
    • *.dll 파일
    • {ASSEMBLY NAME}.deps.json
    • {ASSEMBLY NAME}.dll
    • Windows의 {ASSEMBLY NAME}{.EXTENSION}.exe 확장, macOS 또는 Linux에 확장 없음
    • {ASSEMBLY NAME}.pdb
    • {ASSEMBLY NAME}.Views.dll
    • {ASSEMBLY NAME}.Views.pdb
    • {ASSEMBLY NAME}.runtimeconfig.json
    • web.config(IIS 배포)
    • createdump(Linux createdump 유틸리티)
    • *.so(Linux 공유 개체 라이브러리)
    • *.a(macOS 아카이브)
    • *.dylib(macOS 동적 라이브러리)
SCD(자체 포함 배포)
  • publish†
    • Views† MVC 앱, 뷰가 미리 컴파일되지 않은 경우
    • Pages† MVC 또는 Razor Pages 앱, 페이지가 미리 컴파일되지 않은 경우
    • wwwroot†
    • *.dll 파일
    • {ASSEMBLY NAME}.deps.json
    • {ASSEMBLY NAME}.dll
    • Windows의 {ASSEMBLY NAME}{.EXTENSION} .exe 확장, macOS 또는 Linux에 확장 없음
    • {ASSEMBLY NAME}.pdb
    • {ASSEMBLY NAME}.Views.dll
    • {ASSEMBLY NAME}.Views.pdb
    • {ASSEMBLY NAME}.runtimeconfig.json
    • web.config(IIS 배포)

†디렉터리를 나타냄

publish 디렉터리는 배포의 애플리케이션 기본 경로라고도 하는 콘텐츠 루트 경로를 나타냅니다. 서버에 배포된 앱의 publish 디렉터리에 어떤 이름을 지정하더라도 해당 위치는 호스트된 앱에 대한 서버의 실제 경로로 사용됩니다.

wwwroot 디렉터리(있는 경우)에는 정적 자산만 포함됩니다.

추가 리소스

게시 디렉터리에는 dotnet 게시 명령에 의해 생성된 앱의 배포 가능한 자산이 포함되어 있습니다. 디렉터리에는 다음이 포함됩니다.

  • 애플리케이션 파일
  • 구성 파일
  • 정적 자산
  • 패키지
  • 런타임(자체 포함 배포만 해당)
앱 형식 디렉터리 구조
프레임워크 종속 실행 파일
  • publish†
    • Views† MVC 앱, 뷰가 미리 컴파일되지 않은 경우
    • Pages† MVC 또는 Razor Pages 앱, 페이지가 미리 컴파일되지 않은 경우
    • wwwroot†
    • *.dll 파일
    • {ASSEMBLY NAME}.deps.json
    • {ASSEMBLY NAME}.dll
    • Windows의 {ASSEMBLY NAME}{.EXTENSION} .exe 확장, macOS 또는 Linux에 확장 없음
    • {ASSEMBLY NAME}.pdb
    • {ASSEMBLY NAME}.Views.dll
    • {ASSEMBLY NAME}.Views.pdb
    • {ASSEMBLY NAME}.runtimeconfig.json
    • web.config(IIS 배포)
    • createdump(Linux createdump 유틸리티)
    • *.so(Linux 공유 개체 라이브러리)
    • *.a(macOS 아카이브)
    • *.dylib(macOS 동적 라이브러리)
SCD(자체 포함 배포)
  • publish†
    • Views† MVC 앱, 뷰가 미리 컴파일되지 않은 경우
    • Pages† MVC 또는 Razor Pages 앱, 페이지가 미리 컴파일되지 않은 경우
    • wwwroot†
    • *.dll 파일
    • {ASSEMBLY NAME}.deps.json
    • {ASSEMBLY NAME}.dll
    • {ASSEMBLY NAME}.exe
    • {ASSEMBLY NAME}.pdb
    • {ASSEMBLY NAME}.Views.dll
    • {ASSEMBLY NAME}.Views.pdb
    • {ASSEMBLY NAME}.runtimeconfig.json
    • web.config(IIS 배포)

†디렉터리를 나타냄

publish 디렉터리는 배포의 애플리케이션 기본 경로라고도 하는 콘텐츠 루트 경로를 나타냅니다. 서버에 배포된 앱의 publish 디렉터리에 어떤 이름을 지정하더라도 해당 위치는 호스트된 앱에 대한 서버의 실제 경로로 사용됩니다.

wwwroot 디렉터리(있는 경우)에는 정적 자산만 포함됩니다.

로그 폴더를 만드는 것은 ASP.NET Core 모듈 향상된 디버그 로깅에 유용합니다. <handlerSetting> 값에 제공된 경로에 있는 폴더는 모듈에서 자동으로 생성되지 않으며 모듈이 디버그 로그를 작성할 수 있도록 배포에 미리 존재해야 합니다.

다음 두 가지 방법 중 하나를 사용하여 Logs 디렉터리를 배포용으로 만들 수 있습니다.

  • 다음 <Target> 요소를 프로젝트 파일에 추가합니다.

    <Target Name="CreateLogsFolder" AfterTargets="Publish">
       <MakeDir Directories="$(PublishDir)Logs" 
                Condition="!Exists('$(PublishDir)Logs')" />
       <WriteLinesToFile File="$(PublishDir)Logs\.log" 
                         Lines="Generated file" 
                         Overwrite="True" 
                         Condition="!Exists('$(PublishDir)Logs\.log')" />
    </Target>
    

    <MakeDir> 요소는 게시된 출력에 빈 Logs 폴더를 만듭니다. 이 요소는 PublishDir 속성을 사용하여 폴더를 만들 대상 위치를 확인합니다. 웹 배포와 같은 여러 배포 방법에서는 배포 중에 빈 폴더를 건너뜁니다. <WriteLinesToFile> 요소는 파일이 서버에 배포되도록 Logs 폴더에 파일을 생성합니다. 대상 폴더에 대한 쓰기 권한이 작업자 프로세스에 없는 경우 이 방법을 사용한 폴더 만들기가 실패합니다.

  • 배포 시 서버에서 Logs 디렉터리를 실제로 만드세요.

배포 디렉터리에는 읽기/실행 권한이 필요합니다. Logs 디렉터리에는 읽기/쓰기 권한이 필요합니다. 파일이 작성되는 추가 디렉터리에는 읽기/쓰기 권한이 필요합니다.

추가 리소스