基于WixSharp库实现自定义打包工具

WixSharp是一个用于创建Windows Installer(MSI)包的开源库,它允许使用C#编程语言来定义安装程序的内容和行为。

1.安装相关扩展

在Visual Studio 中的标题栏 扩展-->管理扩展 中搜索WixSharp Project Templates并安装。

继续搜索 WiX v3 - Visual Studio 2022 Extension并安装。

安装完成之后关掉Visual Studio,这时会启动安装,等待全部安装完成在打开Visual Studio使用。

2.创建WiX3项目

创建完成

3.根据需求进行自定义界面和功能的开发

配置自己需要打包的程序路径/安装包名称,快捷方式等进行编码。

internal class Program
{
    static void Main()
    {
        string path = "D:\\DrLaser\\Git\\TCSE_TBC_B4XS_Beckoff\\DRsoft.Application\\TCSE_XBC\\bin\\Debug\\net6.0-windows";
        Dir dir = AddDirectoryToProject(path);

        var shortcut = new ExeFileShortcut
        {
            Name = "TCSE_XBC",                      // 快捷方式名称
            Target = @"[INSTALLDIR]\TCSE_XBC.exe",  // 目标文件路径
            WorkingDirectory = "[INSTALLDIR]",             // 工作目录
            //IconFile = @"C:\Users\Lenovo\source\repos\WixSharp_Setup61\WixSharp_Setup61\favicon.ico",                    // 可选的图标路径
            //Arguments = "-argument1 value1 -argument2 value2" // 可选的命令行参数
        };
        Dir dirDesktop = new Dir(@"%Desktop%", shortcut);
        dir.AddDir(dirDesktop);

        ManagedProject project = new ManagedProject("TCSE_XBC",
                          new Dir(@"%ProgramFiles%\TCSE_XBC",
                              dir));
       
        project.GUID = new Guid("6fe30b47-2577-43ad-9095-1861ba25889b");

        project.ManagedUI = new ManagedUI();
        project.ManagedUI.InstallDialogs.Add<WixSharp_Setup61.WelcomeDialog>()
                                        .Add<WixSharp_Setup61.LicenceDialog>()
                                        .Add<WixSharp_Setup61.FeaturesDialog>()
                                        .Add<WixSharp_Setup61.InstallDirDialog>()
                                        .Add<WixSharp_Setup61.Test1Dialog>()
                                        .Add<WixSharp_Setup61.ProgressDialog>()
                                        .Add<WixSharp_Setup61.ExitDialog>();

        project.ManagedUI.ModifyDialogs.Add<WixSharp_Setup61.MaintenanceTypeDialog>()
                                       .Add<WixSharp_Setup61.FeaturesDialog>()
                                       .Add<WixSharp_Setup61.ProgressDialog>()
                                       .Add<WixSharp_Setup61.ExitDialog>();

        project.BuildMsi();
    }

    static Dir AddDirectoryToProject(string dirPath)
    {
        DirectoryInfo di = new DirectoryInfo(dirPath);
        Dir wixDir = new Dir(di.Name);

        foreach (FileInfo fi in di.GetFiles())
        {
            if (!fi.Name.EndsWith(".pdb"))
            {
                wixDir.AddFile(new File(fi.FullName));
            }
        }

        foreach (DirectoryInfo subDir in di.GetDirectories())
        {
            wixDir.AddDir(AddDirectoryToProject(subDir.FullName));
        }
        return wixDir;
    }
}

对于熟悉WPF开发的人来说可以将Program.cs里面实现打代码添加到自己自己的框架中实现。在生成的案例代码中也是基于Caliburn.Micro框架实现的,可根据自身情况调整成为常用的MVVM结构。

可以自行写一个WPF运行界面,将配置放到界面中选择和配置,提升程序的通用性。

4.生成程序安装包

运行程序就会生成一个程序安装包

5.安装界面展示

双击安装包进行安装

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值