C#에서는 설치 프로그램 클래스를 사용하여 패키지 설치 프로그램을 만듭니다.

Microsoft Visual Studio 설치 프로그램 프로젝트 설치

솔루션을 선택하고 Visual Studio 인터페이스 상단의 메뉴 바로 이동하여 확장 -> 확장 관리 -> 온라인, 오른쪽 검색 표시줄에 setup을 입력하고 프로젝트를 검색한 후 Microsoft Visual Studio Installer Projects 2022를 설치합니다. .
여기에 이미지 설명을 삽입하세요.

설치 프로젝트 생성

그런 다음 솔루션을 마우스 오른쪽 버튼으로 클릭하고 새 프로젝트를 생성하고 설정을 검색하고 설치 프로젝트를 선택하여 다음으로 이 프로젝트를 생성합니다.
여기에 이미지 설명을 삽입하세요.
설치 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 보기–>파일 시스템–>응용 프로그램 폴더를 선택하고 해당 릴리스 버전을 복사합니다. 출시할 프로그램에 파일을 복사해 이 열에 붙여넣으면 됩니다.
여기에 이미지 설명을 삽입하세요.

설치 프로그램 파일

여기에 이미지 설명을 삽입하세요.

프로그램 바탕 화면 아이콘 설정

사용자 데스크톱을 선택한 다음 마우스 오른쪽 버튼을 클릭하고 -> 새 바로가기 만들기를 선택한 다음 응용 프로그램 폴더에서 exe를 선택하고 확인을 클릭합니다.
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.

프로그램의 설치 프로그램 이름 설정

이 이름은 제어판 – 프로그램 및 기능 –에 표시되는 이름입니다. 설치 프로젝트를 선택하고 F4 키를 누르면 속성 창이 나타납니다.

  • ProductName : 프로그램 설치 이름을 설정합니다.
  • 작성자: 프로그램 게시자를 설정합니다. 일반적으로 회사 이름입니다.
  • TargetPlatform: 소프트웨어 대상 플랫폼 x86 또는 x64를 지정합니다.
  • 버전: 릴리스 버전 번호

여기에 이미지 설명을 삽입하세요.

설치 프로그램 클래스를 사용하는 방법

솔루션을 마우스 오른쪽 버튼으로 클릭하고 콘솔 애플리케이션 ProjectStepOperate를 생성하고 프로젝트 이름을 사용자 정의한 다음 콘솔 애플리케이션 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 새 항목을 생성한 다음 설치 프로그램 클래스 Installer1.cs를 선택합니다. 이 ProjectStepOperate 프로젝트는 프로젝트 선택 연산자 설치 프로젝트에서 View->Custom 작업을 선택하면 다음과 같은 인터페이스가 나타납니다 ProjectStepOperate 프로젝트를 생성한 후 Install의 운영 프로그램으로 bin/release/에서 exe를 선택합니다. Uninstall도 동일합니다. 방법으로, Installer1.cs는 설치 중에 호출됩니다.
여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.

Installer1.cs

인스톨러 클래스에서는 OnAfterInstall 메소드로 레지스트리 생성 항목을 작성할 수 있으며,

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Whl.Tool;

namespace ProjectStepOperate
{
    
    
    /// <summary>
    /// 安装控制
    /// </summary>
    /// 创建时间:2023-7-7 16:56:50, 
    [RunInstaller(true)]
    public partial class Installer1 : System.Configuration.Install.Installer
    {
    
    
        public Installer1()
        {
    
    
            InitializeComponent();
        }

        protected override void OnBeforeInstall(IDictionary savedState)
        {
    
    
            //File.WriteAllText("c://Installer1.txt", "安装前执行," + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));
            RegeditWrite.AddLog("安装前执行OnBeforeInstall");

            string dir = "c://zyt_bluetooth_service";
            if (!System.IO.Directory.Exists(dir))
            {
    
    
                Directory.CreateDirectory(dir);
                RegeditWrite.AddLog(dir + "安装目录创建成功");
            }

            //base.OnBeforeInstall(savedState);
        }

        protected override void OnAfterInstall(IDictionary savedState)
        {
    
    
            //File.WriteAllText("c://Installer2.txt", "安装之后执行," + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"));
            RegeditWrite.AddLog("安装之后执行OnAfterInstall");

            //写入注册表
            RegeditWrite.WriteExeRunAgreement();

        }


    }
}

사용자 정의 설치 단계

사용자 인터페이스에서 "설치 폴더"를 삭제하면 사용자가 설치 디렉터리를 선택하지 못하게 할 수 있습니다.
여기에 이미지 설명을 삽입하세요.

설치 시 사용자가 설치 경로를 선택할 수 없도록 설치 프로그램 경로를 사용자 정의하세요.

응용 프로그램 폴더의 속성을 마우스 오른쪽 버튼으로 클릭하고 DefaultLocation 값을 수정합니다(예: C:\zyt_bluetooth_service로 변경합니다. 프로그램은
이 경로에 설치됩니다. 설치->시작을 통해 사용자 인터페이스에서 설치 폴더를 삭제할 수 있습니다). —> 설치 폴더를 삭제한 후에는 사용자 설치 인터페이스에서 더 이상 설치 디렉터리를 선택할 수 없으며 프로그램은 C:\zyt_bluetooth_service 세트에 자동으로 설치됩니다.
여기에 이미지 설명을 삽입하세요.

설치 패키지 생성

설치 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "재생성"을 클릭하면 프로젝트 폴더에 설치 패키지가 자동으로 생성됩니다. xxxx.msi 파일을 두 번 클릭하여 설치할 수 있습니다.
여기에 이미지 설명을 삽입하세요.

참고기사
https://zhuanlan.zhihu.com/p/622419157?utm_id=0
https://blog.csdn.net/qq_39727831/article/details/124421534

추천

출처blog.csdn.net/u011511086/article/details/131643977