728x90
반응형
이전 게시글에 이어서 프로젝트를 빌드해보자.
C:\Project\CliDemo\DemoApp>dotnet build
.NET용 Microsoft (R) Build Engine 버전 17.1.1+a02f73656
Copyright (C) Microsoft Corporation. All rights reserved.
복원할 프로젝트를 확인하는 중...
C:\Project\CliDemo\DemoApp\DemoApp.csproj을(를) 233 ms 동안 복원했습니다.
복원할 2 프로젝트의 1이(가) 최신 상태입니다.
DemoLib -> C:\Project\CliDemo\DemoLib\bin\Debug\net6.0\DemoLib.dll
DemoApp -> C:\Project\CliDemo\DemoApp\bin\Debug\net6.0\DemoApp.dll
빌드했습니다.
경고 0개
오류 0개
경과 시간: 00:00:09.21
DemoApp 콘솔 애플리케이션을 실행해보자.
C:\Project\CliDemo\DemoApp>dotnet run
Hello, World!
.NET 애플리케이션은 2가지 모드로 게시할 수 있다.
- self-contained : .NET 런타임, 라이브러리, 애플리케이션 및 종속성을 포함하는 애플리케이션이 생성된다. .NET 런타임이 설치되지 않은 머신에서 실행파일을 실행할 수 있다.
- 게시생성파일 : platform 지정 실행파일, output publishing folder에 모든 app, .NET 라이브러리, 대상 런타임 포함한 앱의 모든 구성 요소가 포함된다. 로컬에 설치된 공유 런타임을 사용하지 않는다.
- 명령어
- dotnet publish -r <RID> : RID 실행파일이 생성된다.
- 장점 : 앱과 함께 배포되는 .NET 버전을 제어할 수 있다. Target Platform을 지정한다.
- 단점 : 게시파일 용량이 크다. .NET 버전을 업데이트하기 어렵다.
- framework-dependent : 애플리케이션과 종속성만 포함하는 애플리케이션이 생성된다. 머신에 .NET 런타임을 설치해야 한다.
- 게시생성파일 : cross-platform binary dll file(eg. helloworld.dll), platform지정 실행파일(eg. helloworld.exe)
- 명령어
- dotnet publish : cross-platform framework-dependent app을 게시한다. 현재 플랫폼을 대상으로 하는 실행파일이 dll과 함께 만들어진다.
- dotnet publish -r <RID> --self-contained false : cross-platform framework-depent app을 게시한다. RID 실행파일이 dll 파일과 함께 만들어진다.
- 장점 : 게시파일 용량이 적다. Cross-platform
- 단점 : .NET 업데이트가 일어나면 앱의 동작이 변경될 수 있다.
두 게시 모두, 플랫폼별 실행파일을 생성한다. RID로 대상 플랫폼을 지정한다.
.NET RID 카탈로그 : https://docs.microsoft.com/ko-kr/dotnet/core/rid-catalog
DemoApp 콘솔 애플리케이션을 framework-dependent 모드로 게시해보자.
C:\Project\CliDemo\DemoApp>dotnet publish -p:PublishSingleFile=true -r win-x64 --self-contained false
.NET용 Microsoft (R) Build Engine 버전 17.1.1+a02f73656
Copyright (C) Microsoft Corporation. All rights reserved.
복원할 프로젝트를 확인하는 중...
C:\Project\CliDemo\DemoLib\DemoLib.csproj을(를) 250 ms 동안 복원했습니다.
C:\Project\CliDemo\DemoApp\DemoApp.csproj을(를) 250 ms 동안 복원했습니다.
DemoLib -> C:\Project\CliDemo\DemoLib\bin\Debug\net6.0\DemoLib.dll
DemoApp -> C:\Project\CliDemo\DemoApp\bin\Debug\net6.0\win-x64\DemoApp.dll
DemoApp -> C:\Project\CliDemo\DemoApp\bin\Debug\net6.0\win-x64\publish\
C:\Project\CliDemo\DemoApp\bin\Debug\net6.0\win-x64\publish 경로에 아래 파일들이 생성되었다.
DemoApp.exe 파일만 있으면 애플리케이션 실행이 가능하다. 353KB 용량이다.
DemoApp 콘솔 애플리케이션을 self-contained 모드로 게시해보자.
C:\Project\CliDemo\DemoApp>dotnet publish -p:PublishSingleFile=true -r win-x64 --self-contained true
.NET용 Microsoft (R) Build Engine 버전 17.1.1+a02f73656
Copyright (C) Microsoft Corporation. All rights reserved.
복원할 프로젝트를 확인하는 중...
C:\Project\CliDemo\DemoLib\DemoLib.csproj을(를) 51.29 sec 동안 복원했습니다.
C:\Project\CliDemo\DemoApp\DemoApp.csproj을(를) 51.29 sec 동안 복원했습니다.
DemoLib -> C:\Project\CliDemo\DemoLib\bin\Debug\net6.0\DemoLib.dll
DemoApp -> C:\Project\CliDemo\DemoApp\bin\Debug\net6.0\win-x64\DemoApp.dll
DemoApp -> C:\Project\CliDemo\DemoApp\bin\Debug\net6.0\win-x64\publish\
첫번째 게시보다 시간이 오래걸린다. 용량은 62MB이다.
DemoApp.exe 파일만 있으면 어느 Window 기기에서도 동작한다. exe파일을 더블클릭해서 실행하면 console이 떴다가 바로 닫혀진다.
아래 경로에서 호출하면 console창 닫힘 없이 결과를 확인할 수 있다.
C:\Project\CliDemo\DemoApp\bin\Debug\net6.0\win-x64\publish> .\DemoApp.exe
Hello, World!
728x90
반응형
'ASP.NET Core' 카테고리의 다른 글
ASP.NET MVC vs ASP.NET Core] static files, DI 차이 (0) | 2023.02.07 |
---|---|
ASP.NET MVC vs ASP.NET Core] startup, host 차이점 (0) | 2023.02.07 |
.NET CLI] 사용법 - 솔루션 생성, 프로젝트 생성, 참조 추가 (2) (0) | 2022.06.23 |
.NET CLI] 사용법 - 설명, SDK 설치확인, SDK 다운로드 (1) (0) | 2022.06.23 |
.NET] .NET Framework, .NET Core, .NET Standard 정리 (0) | 2022.06.23 |
댓글