실행파일에 프레임워크 내장을 할수 있나요,

실행 파일에 닷넷프레임워크를 내장 해당 버젼이 설치가 안된
컴퓨터에서 실행이 가능 하도록 할수 있을까요?

2개의 좋아요

.NET Framework은 불가능 한 것으로 알고 있습니다. 일반적으로 설치본에서 같이 설치하도록 합니다

1개의 좋아요

그래서 실행파일을 만들 때 최소사양을 정합니다.
질문하신 것처럼 낮은 버전에서 돌리고 싶다면,
빌드할 때 .Net 버전을 변경해서 낮춰야 합니다.

1개의 좋아요

배포를 압축파일로 메일이나 메신져로 전달하시는게 아니고 클릭원스나 msix같은 배포방식을 사용하면 pc에 닷넷 프레임워크가 없을때 자동으로 다운로드 해줍니다. 그렇게 배포하는 옵션이있어요.

1개의 좋아요

.NET Framework의 경우 Application Virtualization 솔루션을 쓰시면 해결이 가능합니다. 다만 사용 조건이 복잡하거나, 가격이 높게 책정되어있는 경우가 많습니다. 그래서 보통은 아래에 거론된 솔루션 보다는, InstallShield 같은 서드파티 설치 제작기를 이용해서 .NET Framework 설치를 자동화해서 배포하는 방식을 권장합니다.

.NET Core 3.1 이상, 또는 .NET 5로 마이그레이션하실 수 있다면 이쪽은 관련된 기능이 내장되어있어서 편하게 사용하실 수 있습니다. Windows Forms, WPF 기반 애플리케이션을 .NET Core로 마이그레이션하는 것을 추천드리는 가장 큰 이유 중 하나가 이 부분입니다. 다만, 전체적인 배포 파일의 크기가 커지는 점을 감안하셔야 하며, 원활하게 배포하기 위해서는 CDN의 사용이 권장됩니다. 그리고 ClickOnce와의 연계도 가능하니 참고하시면 좋을 것 같습니다.

예외적으로, Windows GUI 애플리케이션이 아니거나, GTK#, QT# 같은 크로스플랫폼 UI를 사용하거나 ASP.NET MVC 애플리케이션이라면 Mono Framework를 이용해서 재배포하는 것도 가능합니다. Mono의 경우 오픈 소스 라이센스 규약만 준수하면 프레임워크 전체를 통째로 재배포할 수 있기 때문입니다.

또한, 위의 모든 경우를 고려하여 애플리케이션 배포를 하실 때에는 반드시 CodeSign 인증서 사용도 고려하셔야 합니다. Microsoft Store가 아닌 다른 모든 경로에서 Windows는 SmartScreen 필터를 적용하여 유해성 검사를 하고 있는데, 이를 안정적으로 통과하려면 반드시 CodeSign 인증서로 애플리케이션 패키지를 설명해야만 합니다.

최근들어 CodeSign 인증서는 두 가지로 구분되는데, 전통적인 CodeSign 인증서는 통계적 관점에서의 충분한 “긍정적” 지명도가 요구됩니다. 따라서 CodeSign 인증서를 발급받았다고 하더라도 차단될 확률이 높기 때문에, Extended Verified (EV) CodeSign 인증서로 등급을 높여 인증/구매를 하는 것이 좋습니다. (참고: UCERT)

이런 과정을 거치지 않기 위해, 그리고 수익성 창출을 동시에 고려하여 Microsoft Store로 애플리케이션을 출시하는 것 역시 유효한 옵션입니다. 이 방식을 택하면 위의 모든 내용이 한 번에 해소되는 이점이 있습니다. (프레임워크 설치 문제를 고민하지 않고, 인증서 문제도 고민하지 않으며, 안티바이러스 오탐과 오판에 대한 항의 제기도 필요하지 않습니다.) 단, 스토어에 제출하는 것이므로 모바일 앱 스토어 제출과 비슷한 프로세스, 비슷한 검수 통과 요건을 만족시켜야 하므로 난이도가 높습니다.

3개의 좋아요

@caraser 님 환영합니다. :slight_smile:

@Vincent 저도 ClickOnce 통해서 배포할 때 닷넷프레임워크를 설치할 수 있도록 했습니다.

그리고 클라이언트에서 직접 닷넷 프레임워크 체크 및 설치 기능을 만들어서 사용한 적도 있습니다.

(최근엔 윈도 10으로 통합되고 닷넷 프레임워크 설치에 대한 부담이 거의 없어져서 좋은 것 같습니다. :smile:)