연습 - 프레임워크 종속 배포를 위해 게시
프레임워크 종속 배포는 ASP.NET Core 앱의 기본값입니다. 프레임워크 종속 앱을 게시하면 앱의 파일 및 종속성만 배포 패키지에 포함됩니다. .NET 런타임은 포함되지 않습니다. 앱을 실행하려면 대상 컴퓨터에 올바른 버전의 .NET 런타임이 설치되어 있어야 합니다.
팀 리더가 배포를 위해 팀의 앱을 준비하도록 요청했습니다. 앱이 실행될 서버에 이미 .NET 런타임이 설치되어 있으므로 프레임워크 종속 배포로 앱을 게시할 수 있습니다. 이렇게 하면 배포 패키지의 크기가 줄어들고 앱을 더 쉽게 배포할 수 있습니다.
이 연습에서는 ASP.NET Core 앱을 프레임워크 종속 배포로 게시합니다.
ASP.NET Core 앱 만들기
팀 앱의 역할을 하려면 ASP.NET Core 앱이 필요합니다. Visual Studio Code에서 C# Dev Kit 확장을 사용하여 새 ASP.NET Core 앱을 만들어 보겠습니다.
Visual Studio Code를 시작합니다.
Ctrl+Shift+P를 눌러 명령 팔레트를 엽니다.
.NET 새 프로젝트를 검색하여 선택합니다.
ASP.NET Core Empty를 검색하고 선택합니다.
새 프로젝트에 대한 폴더를 선택하거나 만듭니다.
새 앱 MyWebApp의 이름을 지정합니다.
프로젝트 만들기를 선택하여 프로젝트를 만듭니다.
앱 실행
앱이 실행되는지 테스트합니다.
Visual Studio Code에서 F5 키를 눌러 앱을 빌드하고 실행합니다.
- 메시지가 표시되면 디버거로 C# 을 선택합니다.
- 메시지가 표시되면 사용할 시작 구성으로 C#: MyWebApp [기본 구성] 을 선택합니다.
이 명령은 앱을 시작하고 로컬 웹 서버에 호스팅합니다. 브라우저 창이 열리고 "Hello, World!"가 표시됩니다.
Visual Studio Code에서 Shift+F5 를 눌러 브라우저 창을 닫고 앱을 중지합니다.
프레임워크 종속 배포로 앱 게시
이제 앱이 올바르게 실행되는지 확인했으므로 프레임워크 종속 배포로 게시할 수 있습니다.
Visual Studio Code에서 Ctrl+'를 눌러 터미널 창을 엽니다.
MyWebApp 디렉터리로 이동합니다.
cd MyWebApp다음 명령을 실행하여 앱을 게시합니다.
dotnet publish -c Release -o publish-fd앞의 명령에서 다음을 확인할 수 있습니다.
-
-c Release는 릴리스 모드에서 앱을 빌드해야 임을 지정합니다. 이렇게 하면 성능에 대한 앱이 최적화됩니다. -
-o는 출력 디렉터리의 이름을 지정합니다. 이 경우 출력 디렉터리의 이름은 publish-fd입니다.
이 명령은 앱을 프레임워크 종속 배포로 게시-fd 디렉터리에 게시합니다.
-
Visual Studio Code Explorer 창에서 MyWebApp/publish-fd 디렉터리의 콘텐츠를 확장하고 파일 목록을 봅니다. 디렉터리에는 앱의 파일 및 종속성이 포함되지만 .NET 런타임 또는 소스 코드 파일은 포함되지 않습니다. 포함된 파일 및 디렉터리 중 일부는 다음과 같습니다.
- MyWebApp.dll'**: 컴파일된 앱입니다.
- 기타 MyWebApp. 파일: 앱을 실행하는 데 필요한 추가 파일입니다.
- appsettings.json: 앱의 구성 파일입니다.
- web.config: Windows의 IIS(인터넷 정보 서비스)에 대한 구성 파일입니다.
- wwwroot: 있는 경우 이 디렉터리에는 HTML, CSS 및 JavaScript 파일과 같은 게시된 정적 웹 자산이 포함됩니다. 프로젝트에 정적 웹 자산이 없으면 이 디렉터리가 생성되지 않으므로 이 경우에는 존재하지 않습니다.
publish-fd 디렉터리로 이동하여 앱을 실행합니다.
cd publish-fd dotnet MyWebApp.dll이 명령은 게시된 앱을 시작하고 Kestrel에서 호스트합니다. 앱에 연결하는 웹 브라우저에는 동일한 기본 ASP.NET Core 시작 페이지가 표시됩니다.
웹 브라우저를 닫고 터미널 창에서 Ctrl+C를 눌러 앱을 중지합니다.