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也都换一下吧

刚才做的事情,其实就是:

  1. 将Helloworld.exe包装进msi安装文件Product.msi
  2. 然后静默安装Product.msi
  3. 安装完成后立即运行Helloworld.exe文件

[参考文献]

阿扁的“Wix学习整理”
WiX官网的“How To: Run the Installed Application After Setup”

StackOverflow的“Open readme.txt at end of installatin failed in WiX”

最新文章

  1. 一步步实现ABAP后台导入EXCEL到数据库【2】
  2. CLR:基元类型、引用类型和值类型
  3. 《JavaScript模式》第5章 对象创建模式
  4. SharePoint Web service and template
  5. php做EXCEL数据导出导入开发的一些小问题
  6. Win10的革新与突破
  7. Markdown 测试
  8. centos 命令行 连接无线网卡
  9. json和xml封装数据、数据缓存到文件中
  10. Image Style Transfer:多风格 TensorFlow 实现
  11. semver(Semantic Versioning)
  12. hdu 2091空心三角形
  13. 11-22 JS中级复习
  14. react系列笔记1 用npx npm命令创建react app
  15. hihoCoder week13 最近公共祖先&#183;一
  16. 【C#】Using的一个比较好的语言文字解释
  17. FFmpeg实现监控摄像头的RTSP协议转RTMP协议直播
  18. Ubuntu 12.04.1 mysql从5.5升级到5.6
  19. @PropertySource加载文件的两种用法以及配置文件加载顺序
  20. mysql之explain

热门文章

  1. jQuery插件学习笔记
  2. Papers of Word Embeddings
  3. Linux初学者学习资料
  4. 开发新手教程【三】Arduino开发工具
  5. JUnit小记
  6. PatternSyntaxException:Syntax error in regexp pattern
  7. 在odl中怎样实现rpc
  8. 用pypy运行ryu
  9. sql 循环表中记录
  10. 禁用chrome默认打印框直接打印