C#制作打包安装程序,安装程序类使用

安装Microsoft Visual Studio Installer Projects

解决方案选中,visual studio界面顶部菜单栏,扩展—>管理扩展—>联机,在右侧搜索栏输入setup,搜索项目,安装Microsoft Visual Studio Installer Projects 2022,
在这里插入图片描述

创建安装项目

然后在解决方案上右键,新建项目,搜索setup,选中Setup Project下一步创建此项目;
在这里插入图片描述
在安装项目上右键,选择View–>文件系统—>Application Folder,去要发布的程序复制他的Release版本文件到此栏粘贴即可,
在这里插入图片描述

设置安装程序文件

在这里插入图片描述

设置程序桌面图标

选中User’s Desktop,然后点击右键—>创建新的快捷方式,然后选择Application Folder里面的exe,点击ok,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

给程序设置安装程序名称

此名称显示在控制面板–程序和功能–中的名称。选择安装项目,然后按F4,弹出属性窗口

  • ProductName:设置程序安装名称,
  • Author:设置程序发布人,一般是公司名称
  • TargetPlatform : 指定软件目标平台 x86 or x64
  • Version :发布版本号

在这里插入图片描述

安装程序类怎么使用

在解决方案上右键,创建一个控制台应用程序ProjectStepOperate,项目名称自定义,然后控制台应用程序项目,右键,新建项,选择安装程序类Installer1.cs,这个ProjectStepOperate项目用于安装项目选择操作程序,在安装项目中,选择View—>自定义操作,出现如下图界面,把ProjectStepOperate项目生成一下,然后在bin/release/下选择exe,作为Install的操作程序,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();

        }


    }
}

自定义安装步骤

在用户界面,可以吧“安装文件夹”删除,然后就可以让用户不能选择安装的目录,
在这里插入图片描述

自定义设置安装程序路径,让用户安装时不能选择安装路径

在Application Folder右键属性,修改DefaultLocation的值,比如改为C:\zyt_bluetooth_service,
则程序将安装在此路径,可以再用户界面中 Install—>Start—>,删除安装文件夹,删除安装文件夹后,用户安装界面将不再让其选择安装目录,程序将自动安装到设置的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
今日推荐