使用VisualStudio2022制作安装包

总体介绍

解决方案里面需要有三个项目: Winform程序, Setup Project , 自定义配置项目(安装程序类)
1, Winform程序 就是你要打包的程序
2, Setup Project 就是制作安装包的
3, 安装配置项目: 只有一个"安装程序类", 例如: 用来控制安装后自动打开程序 ( 没有需求可以不要 )

一, 最简教程

1, 安装扩展

选择 扩展–>管理扩展–>联机 (或者选择 工具–>扩展和更新–>联机),搜索Microsoft Visual Studio Installer Projects,进行安装,安装好之后,重启vs(一定要重启)

2, 新建项目

选择 Setup Project 模板新建打包项目, 例如Setup1

3, 添加需要打包的项目

右键Setup1项目–> Add --> 项目输出 (一般会自动选中目标项目) --> 确定

4, 测试

"生成"没有报错后, 右键Setup1项目–>安装, 测试没问题就可以了

二, 安装配置

以 “安装后自动运行” 举例:
新建命令行项目(例如: SetupConfig), 右键项目–>添加–>新建项–>安装程序类(installer1.cs), 修改代码如下:

// 安装后启动exe文件
[RunInstaller(true)]
public partial class Installer1 : System.Configuration.Install.Installe
{
    public Installer1()
    {
        InitializeComponent();
    }
    
    protected override void OnBeforeInstall(IDictionary savedState)
    {
        Console.WriteLine("安装开始, 这里的代码用于测试和验证");
        string dir = "C://公司";
        if (!System.IO.Directory.Exists(dir))
        {
            Directory.CreateDirectory(dir);
        }
    }

    protected override void OnAfterInstall(IDictionary savedState)
    {
       Assembly asm = Assembly.GetExecutingAssembly();
       string exePath = asm.Location.Remove(asm.Location.LastIndexOf("\\"));
     // 启动exe文件
     Process.Start(exePath + "\\xxx.exe");
    }
}

这样就可以了, 生成SetupConfig.exe, 在Setup->Add->文件, 把SetupConfig.exe加进来
在右键项目->View–>自定义操作–>install–>右键"添加自定义操作", 选中刚刚加入的SetupConfig.exe, 即可
安装的时候会自动执行Installer1.cs里面的代码

三, 其他常见配置

直接修改Setup1.vdproj 文件

有一些配置在VS里面不好设置, 直接修改 Setup Project的项目主文件: xxxxx.vdproj
以我的项目举例: 用记事本打开 Setup1.vdproj 文件 , 搜索需要配置的项目进行修改

// 修改产品名: 就是在安装对话框里面显示的产品的名字
"ProductName" = "8:xxxxx"

// 修改公司名称:
"Manufacturer" = "8:xxxxxxx"

// 修改程序的默认安装路径, 例如安装到C盘根目录
"DefaultLocation" = "8:C:\\[Manufacturer]\\[ProductName]"

// 修改默认为所有用户安装 :
"InstallAllUsers" = "11:TRUE"

// 安装包需要以管理员权限运行 :  例如要修改注册表的时候
"RequiresElevation" = "11:TRUE"

// 更新版本:  修改ProductCode的值(只要改一位就可以)
"ProductCode" = "8:{66A4057A-2F06-41EF-ACF0-38759D698C29}"
"ProductVersion" = "8:1.1.1" // 改版本号没什么用

//删除之前的版本: 好像没有效果
"RemovePreviousVersions" = "11:TRUE"

//不检查新版本
"DetectNewerInstalledVersion" = "11:FALSE"

添加桌面快捷方式

右键"主输出",创建一个快捷方式, 再把快捷方式拖动到 “User’s Desktop” 里面, 改个名字
在这里插入图片描述

注册DLL

有些dll需要注册
手动的命令类似这样: regsvr32 D:\grdes6.dll
这里可以设置安装时自动注册:
先把dll添加进来(Add->文件), 右键添加进来的dll设置“Register”属性为“vsdrfCOMSelfReg”。

更新版本

重新制作的安装包, 手动双击运行会提示: 已经安装了该产品的另一个版本。无法继续安装此版本。
修改ProductCode的值(只要改一位就可以): 相当于一个新的产品 ( 不会卸载原来的版本, 只会覆盖, 所以必须关闭程序再安装)
网上说: 将安装包项目的version属性值改一下. 但是我没找到Version属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值