이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 33299|회답: 2

[.NET 코어] 새로운 .NET Core 기능은 단일 파일 실행 파일을 제공합니다

[링크 복사]
2019-9-28 16:38:47에 게시됨 | | | |
며칠 전, 마이크로소프트는 .NET Core 3.0을 출시했으며, 가장 큰 개선 사항 중 하나는 윈도우 데스크톱 애플리케이션(Windows만 지원)입니다. .NET Core 3.0 SDK Windows 데스크톱 컴포넌트를 사용하면 Windows Forms와 Windows Presentation Foundation(WPF) 애플리케이션을 포팅할 수 있습니다. 명확히 하자면, Windows 데스크톱 구성 요소는 Windows에서만 지원되고 포함되어 있습니다.

SDK 다운로드 주소:하이퍼링크 로그인이 보입니다.

.NET Core 기능 소개 링크:

하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다.

특징은 다음과 같습니다:

  • C#을 사용해 풍부하고 상호작용적인 클라이언트 웹 앱을 만드세요.
  • gRPC를 사용해 고성능 백엔드 서비스를 만드세요.
  • SignalR은 이제 자동 재연결과 클라이언트-서버 플로우를 지원합니다.
  • OpenAPI 문서를 사용해 웹 API용 강력한 타입 클라이언트 코드를 생성하세요.
  • 엔드포인트 라우팅은 프레임워크를 통해 통합되어 있습니다.
  • Kestrel은 기본적으로 HTTP/2가 활성화되어 있습니다.
  • 통합 웹 API 및 단일 페이지 앱 인증 지원.
  • 인증서와 Kerberos 인증도 지원합니다.
  • 새로운 System.Text.Json 직렬라이저를 통합하세요.
  • 새로운 범용 호스팅은 의존성 주입, 구성, 로깅과 같은 공통 관리 서비스를 설정합니다.
  • 장기 서비스를 구축하기 위한 새로운 워커 서비스 템플릿.
  • 새로운 이벤트 카운터는 초당 요청, 총, 현재, 실패 요청에 대해 생성됩니다.
  • IIS에서 호스팅된 시작 오류는 이제 Windows 이벤트 로그에 보고됩니다.
  • 파이프라인 통합 요청, System.IO.Pipelines.
  • 전체 기술 스택 전반에 걸친 성능 향상.

아래 그림과 같이 VS 2019로 새로운 .NET Core 3.0 콘솔 프로젝트를 만들어봅시다:



Newtonsoft.Json 패키지를 참조하며, 다음과 같이 몇 줄의 코드를 작성하세요:


VS Regenerate를 우클릭한 후 프로젝트의 bin 디렉터리를 열면 :demo1.exe 파일과 Newtonsoft.Json.dll 파일을 포함한 여러 파일이 생성됩니다.



단일 파일 실행 파일을 공개합니다

방법 1:

프로젝트 디렉터리에서 다음 명령을 실행하세요:



C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64 폴더를 열면 많은 dll 파일이 생성되고 있고 publish 폴더가 있다는 것을 알 수 있습니다.

게시 폴더로 가세요,뷰잉 demo1.exe의 크기는 66M으로, 폴더 외부의 모든 파일과 동일한 크기입니다, 아래 그림에서 볼 수 있습니다:



생성된 단일 실행 파일은 실제로 프로그램 실행에 필요한 환경을 포함하고 있으며, 대상 컴퓨터가 SDK를 설치할 필요가 없으며, 단점은 파일 크기가 매우 커진다는 점입니다.

방법 2:

프로젝트 파일을 우클릭 vs 편집하여 PublishSingleFile 노드 구성을 추가하세요. 코드는 다음과 같습니다:

그 다음 우클릭해서 "Publish" 버튼을 클릭하세요.


어셈블리 링크

.NET Core 3.0 SDK에는 IL을 분석하고 사용하지 않는 어셈블리를 클리핑하여 앱 크기를 줄일 수 있는 도구가 포함되어 있습니다.

독립형 앱은 메인 컴퓨터에 .NET을 설치하지 않고도 코드를 실행할 수 있는 모든 것을 포함하고 있습니다. 하지만 많은 경우 앱이 프레임워크의 일부만 필요로 하며, 사용하지 않는 다른 라이브러리는 제거할 수 있습니다.

.NET Core에는 이제 IL 링커 도구를 사용해 앱의 IL을 스캔하는 설정이 포함되어 있습니다. 이 도구는 필요한 코드를 감지한 후 사용하지 않는 라이브러리를 잘라냅니다. 이 도구는 일부 애플리케이션의 배포 크기를 크게 줄일 수 있습니다.

이 도구를 활성화하려면 <PublishTrimmed> 프로젝트 내 설정을 사용하고 독립형 앱을 게시하세요:

.NET Core CLI


방금 66M 파일을 생성했고, 설정을 추가한 후,3500만 명이 되어 3천만 명의 점유율이 줄었습니다

반사나 관련 동적 기능(ASP.NET Core, WPF 포함)을 사용하는 애플리케이션이나 프레임워크를 꼭 고려하세요.보통 절단 중에 손상됩니다이 손상은 링커가 이러한 동적 동작을 인지하지 못해 반사에 필요한 프레임 유형을 판단하지 못하기 때문에 발생합니다。 IL 링커 도구는 이 상황을 감지하도록 설정할 수 있습니다.

가장 중요한 것은 자르기 후에 반드시 바르는 것입니다시험 수행


(끝)






이전의:Ajax가 외부 변수에 값을 할당하지 못하는 문제를 해결하세요
다음:C 언어는 정말 강력한데, 어떤 언어로 쓰여 있나요?
2019-9-29 09:30:44에 게시됨 |

공유해 주셔서 감사합니다
 집주인| 2019-10-30 09:14:15에 게시됨 |
ReadyToRun 이미지
애플리케이션 세트를 ReadyToRun(R2R) 형식으로 컴파일함으로써 개선할 수 있습니다. NET Core 애플리케이션 시작 시간.

R2R은 사전 작성(AOT)의 한 형태입니다. R2R 바이너리는 애플리케이션이 로드될 때 실시간(JIT) 컴파일러가 수행해야 하는 작업량을 줄여 시작 성능을 향상시킵니다. 이 바이너리는 JIT가 생성하는 것과 유사한 네이티브 코드를 포함하고 있습니다. 하지만 R2R 바이너리는 중간 언어(IL) 코드(경우에 따라 여전히 필수)와 동일한 코드의 네이티브 버전을 포함하고 있기 때문에 더 큽니다. R2R은 Linux x64나 Windows x64와 같은 특정 런타임 환경(RID)을 대상으로 한 자체 앱이 배포될 때만 제공됩니다.



먼저 댓글을 남기고 다음에 <PublishTrimmed>덧붙입니다<PublishReadyToRun>:

면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com