단일 배포 파일 만들기(하나 이상의 프로젝트, 외부 파일 추가)

안녕하세요. VS 2022로 개발 중인 프로젝트에서 단일 배포 파일 만드는 중 어려움을 겪고 있습니다.

현재 상황

  • A 프로젝트 :
    • Main() 메서드가 실행되어 msi 파일을 생성하는 프로젝트
    • Main() 메서드 실행 시 특정 파일(a, b, c) 사용 필요 (a, b, c는 msi 파일 생성을 위해 필요한 파일입니다.)
  • B 프로젝트 :
    • 웹에서 c 파일을 다운로드 → A 프로젝트의 Main() 메서드를 실행 → (Main() 메서드 결과로 생성된) msi 파일 실행 순으로 동작하는 프로젝트
  • B프로젝트 빌드를 통한 실행은 성공

위와 같은 상황에서 B프로젝트의 단일 실행 파일 생성이 목표입니다. (b, c 파일은 이미 갖고 있습니다.)
현재는 A 프로젝트의 출력 결과를 클래스 라이브러리로 설정하여 dll 파일을 생성하도록 하고, 이를 B프로젝트에서 참조하고 있습니다.

질문을 올린 이유는 아래와 같습니다.

  • 단일 실행 파일 생성이 가능한지? (가능하다면 어떤 식으로 '게시(publish)'를 진행해야 할까요?.. 너무 기본적인 질문같아서 죄송합니다.)
  • a, b, c 파일은 어떻게 관리해야 하는지? (A프로젝트에서 접근을 위한 경로 설정 및 배포시 어떤 프로젝트에 포함해야 하는지 여부 등)
좋아요 2
  • 첫번째 질문은 설치할 구조가 단일 실행 파일 이란 말씀인가요? 만약 맞다면 Fody.Costura를 이용하면 쉽게 가능합니다. 관련된 한글 자료도 검색을 통해 확인이 되니 참고 하시기 바랍니다.
    .NET(.NET Core) 프로젝트의 경우 애플리케이션 배포를 위한 단일 파일 만들기 - .NET | Microsoft Docs를 참고하시기 바랍니다.

  • 두번째 질문은,

    A프로젝트가 (a, b, c)를 이용해 msi 파일을 생성하는 기능이므로 c파일을 다운로드 받는 B프로젝트는 되려 A프로젝트가 참조하는 라이브러리가 되어 활용되어야 하는 것이 구조적으로 맞는 것 같습니다. 즉, a, b, c의 최종 관리 포인트(경로 설정 등)는 A 프로젝트가 가집니다.

좋아요 2

답변 감사합니다.

  1. 예를 들어, 프로젝트 게시 후 최종적으로 setup.exe 실행 파일 하나만 생성되도록 하고 싶습니다.
    setup.exe를 실행시키면 같은 위치에 c파일이 다운로드되고, 이를 통해 msi 파일이 생성되고 setup.exe은 종료되고, 해당 msi 파일이 자동 실행되도록 하는 것이 목표입니다. Fody.Costura를 사용하면 가능할까요?

  2. 맞는 말씀이십니다. 그런데 A프로젝트에서 매번 새로운 c파일을 통해 msi 파일을 생성하기 위해, 지금과 같은 구조로 만들게 되었습니다. ([WixSharp] 인스톨러 실행 중 특정 파일 다운로드 해당 게시물을 통해 이러한 구조를 갖게 되었습니다… )

좋아요 1

네 됩니다.

좋아요 2