[笔记]WiX制作msi安装包的例子

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”

时间: 2024-10-05 12:23:00

[笔记]WiX制作msi安装包的例子的相关文章

7z制作自解压安装包

像7z和winRAR这样的压缩工具都支持制作自解压的文件.所谓自解压的文件就是不需要目标机器上安装解压工具,通过运行压缩包自己即可解压出压缩包中的文件.下面我们就介绍一下如何利用7z的自解压功能制作应用程序安装包. 熟悉应用程序安装的朋友应该清楚,安装一个应用程序真的是可简单,简单到很简单,也可以复杂,复杂到很复杂很复杂.简单的诸如把几个文件放在一起打个压缩包,解压到目标机器就行了.复杂些的诸如vistual studio和office的安装,要安装这些工具对windows来说可谓是”伤筋动骨”

arcgis安装msi安装包提示&quot;在未标记为正在运行时,调用了RunScript”解决办法

安装msi安装包提示"在未标记为正在运行时,调用了RunScript”解决办法 windows/temp目录相关权限不对,右击temp文件夹,选择管理员获取所有权限.

自定义msi安装包的执行过程

有时候我们需要在程序中执行另一个程序的安装,这就需要我们去自定义msi安装包的执行过程. 比如我要做一个安装管理程序,可以根据用户的选择安装不同的子产品.当用户选择了三个产品时,如果分别显示这三个产品的安装交互UI显然是不恰当的.我们期望用一个统一的自定义UI去取代每个产品各自的UI. 平时使用msiexec.exe习惯了,所以最直接的想法就是在一个子进程中执行: msiexec.exe /qn 这样固然是能够完成任务,但是不是太简陋了? 安装开始后我们想取消这次安装怎么办? 或者我们还想要拿到

使用WinRar软件制作程序安装包

之前我写过使用好压软件打包程序,见随笔: 使用好压(HaoZip)软件打包EverEdit制作安装程序 - Fetty - 博客园http://www.cnblogs.com/fetty/p/4907969.html 这次研究了下WinRar制作程序安装包,和好压大同小异. 使用的winrar版本为5.3,百度搜索一下,很容易下载到的. 打开需要制作安装包程序的目录,不要包含上层目录,点击“添加”按钮,配置压缩参数. “常规”选项中,勾选 “创建自解压格式压缩文件”和“锁定压缩文件”. 切换到“

DevExpress控件库 开发使用经验总结3 制作项目安装包

2015-01-27 使用DevExpress控件包开发C/S项目完成后,部署前需要制作本地安装包.本文还是使用“SetupFactory”安装工厂来制作安装包.在以前的系列文章中详细介绍过该工具的使用,请参考http://www.cnblogs.com/SavionZhang/p/4106338.html. 实际情景:SetupFactory V9.0.3.DevExpress14.1.8.依赖程序.Net Framework 4.0. 由于项目中引用了很多DevExpress控件库中的DLL

ubuntu下打包制作deb安装包

最近写了一个小程序,打算做成deb发布,折腾了两天,终于找到了一个简单的deb制作方法 1.首先要编译好程序,获得程序的可执行文件 2.新建一个文件夹,例如在用户目录下新建mydeb文件夹 3.在mydeb文件夹建立如下结构的文件夹和文件 |--mydeb |----usr |----lib |--可执行文件(安装后,就在你的/usr/lib生成相应的可执行文件) |----share |----icons |--deb.png(图标文件生成到/usr/share/icons/) |----ap

installshield制作的安装包卸载时提示重启动的原因以及解决办法

原文:installshield制作的安装包卸载时提示重启动的原因以及解决办法 有时候卸载installshield制作的安装包程序,卸载完会提示是否重启电脑以完成所有卸载,产生这个提示的常见原因有如下几种:1. 卸载时,程序正处于运行状态2. 卸载时,程序文件夹处于打开状态3. 卸载时,有文件被别的进程调用,或者在进程中,常见情况如dll在进程中 一般来说解决办法是针对第三种情况的,解决办法是卸载时强制杀进程,比如在OnMaintUIBefore或者OnUninstall里写上强制杀进程的代码

使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll)

阅读目录 一.配置安装包依赖项 二.自定义dll(测试数据库连接) 三.总结 正文 前言:上篇使用Advanced Installer制作IIS安装包(一:配置IIS和Web.config)介绍了下使用Advanced Installer配置IIS和Web.config的过程,操作起来是相对比较简单的,只要知道了博主提供的方法,相信都不是问题,其实博主当初寻找相关方法配置IIS和Web.config的时候也是费了九牛二虎之力的,毕竟资料太少,只能各种方式挨个尝试一遍,解决问题之后回过头来看,发现

电脑运行msi安装包提示the error code is 2503/2502如何解决

当在电脑中运行msi安装包时,出现the error code is 2503或者2502错误提示,其实是由于没有运行的权限导致的,但是又不能右击以管理员身份运行,那么应该如何操作呢?对于这样的问题,我们可以参考以下方法进行解决. 1.按Win+X选择"命令提示符(管理员)",或者右击命令提示符选择以管理员身份运行; 2.记住安装包的保存路径,尽量不要放桌面,因为路径会很长,因此建议可以直接保存到根目录下,比如"D:\",那么路径就是D:\python-2.7.11