WixSharp 开源项目教程
项目介绍
WixSharp 是一个用于构建 MSI 或 WiX 源代码的托管接口,它允许通过使用 C# 语法编写的脚本文件来构建完整的 MSI 安装包。WixSharp 属于 CS-Script 家族,通过模仿 WiX 实体及其关系来生成有效的部署模型,解决了许多 MSI 创作中的挑战。
项目快速启动
安装 WixSharp
首先,你需要安装 WiX Toolset 和 WixSharp NuGet 包。你可以在 Visual Studio 中使用以下命令安装 WixSharp:
Install-Package WixSharp -Version 1.25.3
创建一个简单的 MSI 安装包
以下是一个简单的示例,展示如何使用 WixSharp 创建一个基本的 MSI 安装包:
using WixSharp;
using WixSharp.CommonTasks;
class Script
{
static public void Main(string[] args)
{
var project = new Project("MyProduct",
new Dir(@"%ProgramFiles%\My Company\My Product",
new Files(@"Release\*.*")));
project.GUID = new Guid("6f330b47-2577-43ad-9095-1861ba25889b");
project.Version = new Version("1.0.0.0");
project.InstallScope = InstallScope.perMachine;
project.BuildMsi();
}
}
应用案例和最佳实践
安装文件到 Program Files 目录
var project = new Project("MyProduct",
new Dir(@"%ProgramFiles%\My Company\My Product",
new Files(@"Release\*.*")));
安装 Windows 服务
var service = new ServiceInstaller
{
Name = "MyService",
StartOn = SvcEvent.Install,
StopOn = SvcEvent.Uninstall_Wait,
RemoveOn = SvcEvent.Uninstall_Wait
};
var project = new Project("MyProduct",
new Dir(@"%ProgramFiles%\My Company\My Product",
new Files(@"Release\*.*"),
service));
修改 app.config 文件作为安装后操作
var modifyConfig = new ManagedAction("ModifyAppConfig", Return.check, When.After, Step.InstallFinalize, Condition.NOT_Installed);
var project = new Project("MyProduct",
new Dir(@"%ProgramFiles%\My Company\My Product",
new Files(@"Release\*.*")),
modifyConfig);
典型生态项目
NineDigit WixSharpExtensions
NineDigit WixSharpExtensions 是一个扩展库,提供了额外的功能和工具,以增强 WixSharp 的开发体验。
WixSharp ClrDialog
WixSharp ClrDialog 是一个示例项目,展示了如何在 MSI 安装过程中插入自定义的 CLR WinForm 对话框。
通过这些模块的学习和实践,你将能够充分利用 WixSharp 的功能,构建出强大且灵活的 MSI 安装包。