Wix 快速开发安装包程序 (三)变量和条件判断

在 wix 中经常使用变量和条件判断,在这里也做一个总结

一、 变量

1. windows installer 使用关键字

windows 安装包的关键字,它的值是需要推迟到安装包在用户的机器,安装中才能确定并赋值的

举例,我们之前写的这句话

<Property Id="USER32VERSION">
    <DirectorySearch Id="SystemFolderDriverVersion" Path="[SystemFolder]">
        <FileSearch Name="user32.dll" MinVersion="6.0.6001.1750"/>
    </DirectorySearch>
</Property>

注意 [SystemFolder] 这个值实际就是用户机器上系统文件夹的位置

参考微软文档:

[xxx] 这种写法的含义,https://docs.microsoft.com/en-us/windows/win32/msi/formatted?redirectedfrom=MSDN

更多的系统关键字,请参照 https://docs.microsoft.com/en-us/windows/win32/msi/property-reference?redirectedfrom=MSDN#feature-installation-options-properties

2. Wix 变量

Wix提供的变量,写法基本是 $(xxx),它是wix工程在编译过程中就会被替换的变量。

一共有三种变量:

1. $(env.xxx)

xxx 是编译机器上的环境变量名称


2.
$(sys.xxx)

xxx 是wix 提供的变量,如 CURRENTDIR 就是当前wix文件所在的目录


3. $(var.xxx)

用户自己定义的变量,如:<?define test = “Hello World” ?>, 后面即可使用 $(var.test) 引用这个变量的值

变量定义时也可以使用别的变量的值,如:<?define testNew = “$(var.test) aaa” ?>

二、条件编译

在wix 编译中,根据不同条件,执行不同的操作。

<?define aa =3 ?>

<?if $(var.aa) > 10 ?>
xxx1

<?elseif $(var.aa) > 8 ?>
xxx2

<?if $(var.aa) > 3 And $(var.aa) < 5?>
xxx3

<?else?>
xxx4

<?endif?>

以上根据不同条件,选择 xxx 对应的语句执行

原文地址:https://www.cnblogs.com/chenyingzuo/p/12173707.html

时间: 2024-07-30 16:14:24

Wix 快速开发安装包程序 (三)变量和条件判断的相关文章

Wix 快速开发安装包程序 (一)5分钟构建一个最轻量的安装包程序

Wix 被广泛应用在制作安装包程序,相比于微软官方提供的安装包模板更灵活和便捷. 一.环境搭建: 网站地址:https://wixtoolset.org 1. 安装Wix,必备 2. 安装VS 扩展,根据自己使用的VS版本下载相应的扩展.可选,为了方便的使用VS创建wix工程并编译. 二.安装包目标应用程序: 目的:安装一个exe ,一个dll,一个pdf文件 制作流程: 1. 编写符合wix规范的一份wxs类型的文件 2. 使用命令编译中间产物 candle.exe SampleFirst.w

Wix 快速开发安装包程序 (四)使用简单的UI

前面总结了一些 wix 制作安装包最基本的一些功能,虽然也可以成功产出安装包. 不过这样的安装包既没有UI设计,也没有任何和用户的任何交互,连安装位置也不能修改. 这一小节,简单的使用 wix 提供的一个内置模板,做一个能看的安装包. 1. 工程添加 wix dll 的引用 2.  使用 WixUI_Mondo <UIRef Id="WixUI_Mondo" /> <UIRef Id="WixUI_ErrorProgressText" />

iOS开发——程序员必备&amp;iOS安装包的三种格式 deb、ipa 和 pxl的解释和说明

iOS安装包的三种格式 deb.ipa 和 pxl的解释和说明 目前 iOS 平台上常见的安装包有三种,deb.ipa 和 pxl.转自链接:http://fanlb.blogbus.com/logs/80466716.html  多谢作者分享!其中 deb 格式是 Debian 系统(包含 Debian 和 Ubuntu )专属安装包格式,配合 APT 软件管理系统,成为了当前在 Linux 下非常流行的一种安装包.进入 2.x 时代之后有 Cydia 作者 Jay Freeman(sauri

Bootstrap是快速开发Web应用程序的前端工具包 CSS和HTML的集合

版本主要新特性包括: Responsive embeds New responsive utility classes Copy docs snippets LMVTFY Browser bugs 其他更多: 提交有超过1000条,同时也很多改变的更加完美,下面几个值得注意的变化: The docs have been rearranged and updated to be more specific and easier to develop. The progress bar compon

Ubuntu14.04下快速开发QT应用程序

找要:演示如何快速开发QT应用. 1. Ubuntu下安装Qt集成环境 sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer 2. 编写一个简单的Qt程序 首先:创建一个应用文件夹qtapp,并进入该文件夹 cd ~ mkdir qtapp cd qtapp 编写程序: gedit test1.cpp 内容如下: #include <QApplication> #include <QL

如何判断msi安装包程序是否安装及安装路径

使用MSI的函数可以检测软件是否安装,获取安装版本信息等,前提是软件为.msi文件安装的. 在使用前建议加上如下头文件及库依赖: #include <Windows.h> #include <Msi.h> #pragma comment(lib, "Msi.lib") 1. 检测软件是否安装,upgradeCode用于标示从一个版本升级到另一个版本,一般可以用于判断是否是同一个软件. bool CheckExistSoftware(wchar_t *upgrad

BASH编程基础之变量、条件判断

一.前言 在linux中,通常我们所指的脚本编程,指的是bash的脚本编程. bash作为一种过程式的编程语言来说,它应该具备编程语言所应该具备的基本元素,即:变量,流程,函数,数组.今天我们介绍变量以及流程之一的条件判断. 二.变量 1.初识变量 在编程语言中,编程语言有两大种,强类型语言和弱类型语言. 强类型语言中,要求变量的使用要严格符合定义,所有变量都必须先定义后使用.java..NET.C++等都是强制类型定义的. 与其相对应的是弱类型语言:数据类型可以被忽略的语言.它与强类型定义语言

linux 笔记--扩展正则表达式,bash脚本—变量,条件判断,算术运算

正则表达式:有两类,一:basic regexp  二:extended(扩展正则表达式)  他们的部分元字符不一样,意义也不相同 grep:使用基本正则表达式或定义的模式中过滤文本的命令,-E;使用扩展正则表达式  -A 数字:不仅显示匹配到的行,还显示后面几行  -B 数字:不仅显示匹配到的行,还显示前几行  -C 数字:不仅显示匹配到的行,还显示前后个几行 扩展正则表达式: 其中 . [] [^] * ^ $ \< \>与grep是相同的, ? 与 \?:意思相同,可以不写\  +:其前

【Linux学习 009】脚本编程之变量和条件判断

一.Bash环境变量 bash中变量有四种种类型:环境变量.本地变量(局部变量).位置变量.特殊变量. 1.环境变量 环境变量作用范围最广,所有子bash进程都能够访问环境变量中的值,定义环境变量的方法是使用export关键字.举例: [email protected]:~$ export A=abc [email protected]:~$ echo $A abc [email protected]:~$ 2.本地变量 本地变量作用范围是当前bash,子bash访问不到父bash中定义的变量,