Dotnet core console 프로그램을 만들면 배포는 어떻게들 하시나요?

dotnet core console 프로그램을 하나 만들었습니다 worker서비스 템플릿을 이용하였습니다.

다들 이런건 패키지를 어떻게 하시나요?

1개의 좋아요

.NET 5 SDK의 Windows 용 설치본을 무엇으로 만드는지 살펴보는게 의미있을 것 같습니다.

WiX - 위키백과, 우리 모두의 백과사전 (wikipedia.org)

WiX를 쓰는 것으로 보이며,

Downloads (wixtoolset.org) 에서 설치할 수 있습니다.

Production Builds로 WiX v3.11.2이나 .NET Windows SDK 설치본은 3.14.0.4118으로 만드는 것으로 보아 개발 릴리즈를 사용해도 무방할 것으로 보입니다.

샘플로는,
z3ut/wix-toolset-net-core-service-example: WiX toolset .NET Core service installation example (github.com)

이것을 참조하면 되지 않을까 하네요.

그럼 저는? ;; Inno Setup을 씁니다. 그리고,

Squirrel.Windows/docs at develop · Squirrel/Squirrel.Windows (github.com)

이런것도 있으니 참고 바랍니다.

그리고 또… Windows Service로 쉽게 올릴 수 있는 방법이 이제 dotnet에서 지원합니다.

Creating a Windows Service with C#/.NET5 | #ifdef Windows (microsoft.com)

이미 worker 서비스로 구성하셨으니 쉽게 Windows 서비스 구성이 될 듯 합니다.
그리고 배포를 단일 파일로 배포로 하여 인스톨러 메니저 없이 그렇게 배포하셔도 무방할 듯 싶네요

그리고 또…

Topshelf/Topshelf: An easy service hosting framework for building Windows services using .NET (github.com)

이걸 이용하면 조금 더 쉽게 윈도우즈 서비스로 배포가 가능합니다. 최신 .NET 5까지 대응하는지는 살펴보진 않았네요

답변 감사드립니다.

저는 아무리 해도 단일 파일로 안떨어지더라구요 self contain : true요걸로 dotnet publish하는데 파일이 엄청 만들어지는 폴더가 만들어져서요 .

누겟은 console프로그램을 하는게 아니죠?

답변이 늦었습니다.
.NET 5 기준 Linux 기준에서는 self-contained 가 지원되나, Windows 및 iOS에서는 운영체제의 특징으로 완전하게 지원하는데 추가 작업이 필요하다고 합니다. .NET 6에서는 해결된다고 합니다.

  • .NET 5 publish 출력
    image

  • .NET 6 Preview 1 publish 출력
    image

누겟에 대한 부분은 무슨 말씀인지 잘 모르겠습니다.

감사합니다.

이렇게 나름 정리해보았습니다.

3개의 좋아요