[笔记]WiX制作msi安装包的例子
2024-08-26 12:59:31
WiX是制作msi安装文件的工具,看了半天文档,感觉没有什么比一个例子更简单粗暴的了。
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="HelloMSI" Language="1033" Version="1.0.0.0" Manufacturer="LEH" UpgradeCode="1de12ee7-2e94-42ac-979f-06245a0ade31">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<Media Id="1" Cabinet="media1.cab" EmbedCab="yes" /> <Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLFOLDER" Name="HelloWorld">
<Component Id="ProductComponent" Guid="B5F0C012-49D6-4C63-AFCA-0CE6C24C6D7E">
<File Id="HelloWorld" Source="HelloWorld.exe" />
</Component>
</Directory>
</Directory>
</Directory> <Feature Id="ProductFeature" Title="HelloWorld" Level="1">
<ComponentRef Id="ProductComponent" />
</Feature> <Property Id="WixShellExecTarget" Value="[#HelloWorld]" />
<CustomAction Id="LaunchFile" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes"/> <InstallExecuteSequence>
<Custom Action='LaunchFile' After='InstallFinalize'>NOT Installed</Custom>
</InstallExecuteSequence>
</Product>
</Wix>
将这段XML存为Product.wxs,记得是UTF-8编码,然后命令行下执行:
candle Product.wix
light Product.wixobj -out HelloWorld.msi -ext WixUtilExtension
msiexec /i HelloWorld.msi /qn
忘了说运行的前提:
- 安装WiX并将其加入PATH
- 命令行需要以管理员权限打开
- 将例子中的GUID也都换一下吧
刚才做的事情,其实就是:
- 将Helloworld.exe包装进msi安装文件Product.msi
- 然后静默安装Product.msi
- 安装完成后立即运行Helloworld.exe文件
[参考文献]
阿扁的“Wix学习整理”
WiX官网的“How To: Run the Installed Application After Setup”
StackOverflow的“Open readme.txt at end of installatin failed in WiX”
最新文章
- 一步步实现ABAP后台导入EXCEL到数据库【2】
- CLR:基元类型、引用类型和值类型
- 《JavaScript模式》第5章 对象创建模式
- SharePoint Web service and template
- php做EXCEL数据导出导入开发的一些小问题
- Win10的革新与突破
- Markdown 测试
- centos 命令行 连接无线网卡
- json和xml封装数据、数据缓存到文件中
- Image Style Transfer:多风格 TensorFlow 实现
- semver(Semantic Versioning)
- hdu 2091空心三角形
- 11-22 JS中级复习
- react系列笔记1 用npx npm命令创建react app
- hihoCoder week13 最近公共祖先&#183;一
- 【C#】Using的一个比较好的语言文字解释
- FFmpeg实现监控摄像头的RTSP协议转RTMP协议直播
- Ubuntu 12.04.1 mysql从5.5升级到5.6
- @PropertySource加载文件的两种用法以及配置文件加载顺序
- mysql之explain