简介

WixSharp是使用 C# 语法编写的脚本文件构建完整 MSI 或 WiX 源代码的框架。
项目地址:https://github.com/oleg-shilo/wixsharp
官方文档:https://github.com/oleg-shilo/wixsharp/wiki

工具集下载及VS扩展安装

WixToolset下载地址:https://wixtoolset.org/releases/
WixToolset下载安装完成后
需要在VS扩展里搜索
Wix Toolset Visual Studio 2022 Extension

WixSharp Project Templates
安装
在这里插入图片描述

创建打包项目

在添加新项目页面搜索WinSharp
选择WixSharp Managed Setup 下一步
在这里插入图片描述
创建好打包项目以后Program.cs文件里写入以下代码

//这里的参数是要打包项目的目录以及项目名称
var project = new ManagedProject("BidWebsiteCrawler",
                             new Dir(@"%ProgramFiles%\BidWebsiteCrawler",
                                 new Files(@"..\BidWebsiteCrawler.UI\bin\Release\net6.0-windows\*.*")));
            //开启通配符模式
            project.ResolveWildCards();
            //project.UI = WUI.WixUI_InstallDir; //这里是设置安装UI模式 只有选择路径的模式

			//这里是找到需要创建快捷方式的exe执行文件
            var exeFile = project.AllFiles.Single(f => f.Name.EndsWith("BidWebsiteCrawler.UI.exe"));

			//添加快捷方式
            exeFile.Shortcuts = new[] {
                                new FileShortcut("BidWebsiteCrawler", "INSTALLDIR"),
                                new FileShortcut("BidWebsiteCrawler", @"%Desktop%")
                              };
            //配置本地化文件,wix默认是英文安装界面
            //project.Language = "zh-CN";
            project.LocalizationFile = "WixUI_zh-CN.wxl";

            //自定义安装窗口
            project.ManagedUI = new ManagedUI();
            project.ManagedUI.InstallDialogs.Add(Dialogs.Welcome)
                                            .Add(Dialogs.InstallDir)
                                            .Add(Dialogs.Progress)
                                            .Add(Dialogs.Exit);
            project.ManagedUI.ModifyDialogs.Add(Dialogs.MaintenanceType)
                                           .Add(Dialogs.Progress)
                                           .Add(Dialogs.Exit);
            //构建安装包
            project.BuildMsi();

本地化文件WixUI_zh-ch.wxl的路径在WixToolset安装目录下
\WiX Toolset v3.11\SDK\wixui
以上都做完以后 直接生成打包项目就可以自动构建出安装包了,不需要写Wix的Xml文件

踩过的坑

ManagedProject类初始化的参数里面不能有中文,以及 被打包文件目录和文件名里不能包含中文字符。
目前还学艺不精,不知道怎么处理这个问题。

代码里project.Language = “zh-CN”;
这一句配置语言根据官方文档这样配置会出现找不到本地化文件的问题
不知道怎么处理,后面尝试直接注销掉这句才没有问题。

后记

由于博主在尝试WixSharp时候 没有搜到中文教程所以写下此过程
希望我这篇博客能够帮到和我情况差不多的小伙伴吧。。。
写这篇博客时候打包的软件安装包下载地址:https://download.csdn.net/download/a513436535/86400436

转载请保留原文链接:https://blog.csdn.net/a513436535/article/details/126335530

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐