C# はインストーラー クラスを使用してパッケージ化されたインストーラーを作成します

Microsoft Visual Studio インストーラー プロジェクトをインストールする

ソリューションを選択し、Visual Studio インターフェイスの上部にあるメニュー バーに移動し、[拡張機能] -> [拡張機能の管理] -> [オンライン] の順に選択し、右側の検索バーに「セットアップ」と入力してプロジェクトを検索し、Microsoft Visual Studio インストーラー プロジェクト 2022 をインストールします。 。
ここに画像の説明を挿入します

インストールプロジェクトの作成

次に、ソリューションを右クリックし、新しいプロジェクトを作成し、セットアップを検索し、[セットアップ プロジェクト] を選択して次にこのプロジェクトを作成します。
ここに画像の説明を挿入します
インストール プロジェクトを右クリックし、[表示] -> [ファイル システム] -> [アプリケーション フォルダー] を選択して、そのリリース バージョンをコピーします。ファイルをリリースするプログラムにコピーし、この欄に貼り付けるだけです。
ここに画像の説明を挿入します

インストーラーファイルのセットアップ

ここに画像の説明を挿入します

プログラムのデスクトップアイコンを設定する

「ユーザーのデスクトップ」を選択し、右クリック→「新しいショートカットの作成」を選択し、アプリケーションフォルダー内のexeを選択して「OK」をクリックします。
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します

プログラムのインストーラー名を設定します

この名前は、コントロール パネル – プログラムと機能 – に表示される名前です。インストール プロジェクトを選択し、F4 を押してプロパティ ウィンドウを表示します。

  • ProductName: プログラムのインストール名を設定します。
  • 作成者: プログラムの発行者 (通常は会社名) を設定します。
  • TargetPlatform: ソフトウェア ターゲット プラットフォーム x86 または x64 を指定します。
  • バージョン: リリースのバージョン番号

ここに画像の説明を挿入します

インストーラークラスの使い方

ソリューションを右クリックし、コンソール アプリケーション ProjectStepOperate を作成し、プロジェクト名をカスタマイズしてから、コンソール アプリケーション プロジェクトを右クリックし、新しい項目を作成し、インストーラー クラス Installer1.cs を選択します。この ProjectStepOperate プロジェクトは、プロジェクト選択オペレータ インストールプロジェクトで、表示→カスタム操作を選択すると、以下のインターフェースが表示されます ProjectStepOperate プロジェクトを生成し、インストールのオペレーティングプログラムとして bin/release/ 配下の exe を選択します アンインストールも同様ですちなみに、Installer1.cs はインストール中に呼び出されます。
ここに画像の説明を挿入します
ここに画像の説明を挿入します

インストーラー1.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