由于工作需要,学习了一段时间Wix,总算小有起色。鉴于国内Wix
的普及和使用有限,这里将个人遇到得问题和解决方案记录下来,以便交流和相互促进。
Wix
:全称
Windows Installer XML
,
属于微软的一个开源项目,目标是使用
XML
语言灵活的定制具有各种功能的安装包,需要微软的
Windows Installer
服务支
持。
Wix
生
成的产品为
msi
文
件,这种可执行文件与
exe
文件最大的不同为,它更底层,安装文件的同时可以对系统或者其他软件进行设置。
下面的所有内容是基于
Wix3.0
版本。
Wix
基本入门资料:
Wix Document
Wix tutorial (
仅支持到
Wix2.0)
这两份资料都可以通过
Wix
的发布网站获取。
1)
Language
与
Codepage
的设置
Language
指所在地区使用的语言,为数字编号。
Codepage
指所在地区的代码页,用来进行
区域区分。
下来列举几个常见的区域代号:
语言
语言
-
国家
Language
Codepage
English en-us 1033
1252
Simplified Chinese
zh-cn 2052 936
Traditional
Chinese
zh-tw 1028
950
2)
GUID
的生成
在
VS2005
中,通过
“
工具
”——“
创建
GUID”
生成。
GUID
也可以自行定义,但是前提是要保证唯一。
3)
安装文件描述
XML
自动生成
当安装文件特别多的时候,我们
就需要用专用的工具进行文件描述
XML
的自动生成了,采用的是
Wix
自带的
heat
工具,位于安装目录的
bin
下。
Heat
的使用方法为:
heat.exe [-?] harvestType
<harvester arguments> -out sourceFile.wxs
详细见
Wix
说明文档。
例子:
heat.exe dir ABC -gg -ke -sfrag
-template:fragment -dr INSTALLLOCATION -cg BasicComponentGroup -srd
-out ABC.wxs
作用为:将目录
ABC
(相对目录)下的所有文件(包括空目
录)作为一个
ComponentGroup
添加到
ABC.wxs
文件中,其中根目录为
INSTALLLOCATION
,段标签为
fragment
,
运行这行命令会自动生成一个
wxs
文件,里面包含
ABC
目录下所有文件的描述。
4)
Feature
的选择安装
Wix
安装包中所有的组件都是以
Feature
的方式安装到系统中的,
Level
是安装级别,是最重要的属性之一,不可缺少。
Level
的值为整型,最小为
0
,最大
1000
。为
0
的时候此
Feature
不安装。
一般来
说
Level
与选
择安装关联,与之相对应的一个属性为
INSTALLLEVEL
,默认为
1.
小于
1
的
Feature
将不会被安装。
Level
值为
3
的
Feature
为
Typical
类型,
Level
值大于
3
为
Complete
类型。
Level
也可以在安装时动态修改,使用
<Condition>
条件判断。例如:
<Feature
Id="DesktopFt" Title="Desktop" Level="1">
<Condition
Level="0"><![CDATA[HASDESKTOP <> "1"]]></Condition>
<ComponentRef Id="DesktopShortcutComponent"/>
</Feature>
如果
HASDESKTOP
属性值不为
1
,那么此
Feature
的
Level
将为
0
,不会被安装。使用此种方式选择安装需注意
HASDESKTOP
属性的初始化位置,一定要保证在
Feature
初始化前进行。否则设置无效。
也可以采用另一种方法选择性安
装:
HASDESKTOP
属性修改的地方添加
<Publish>
。
<Publish Event="AddLocal"
Value="ALL">1</Publish>
<Publish Event="Remove"
Value="DesktopFt"><![CDATA[HASDESKTOP <>
"1"]]></Publish>
这样效果一样,但是不需要
HASDESKTOP
的值的初始化在
Feature
之前。
详细参考
http://www.joyofsetup.com/2007/05/30/feature-conditions-and-ui/
(
附注:
注意此种方式下内置属性
REMOVE
的值就不再为空,那么在安装时也不能以
REMOVE
来判断当前操作
)
5)
Property
的使用
Wix
中使用自定义变量的方法为声明
Property
(属性)。
Property
分为两种:全局的和局部的。全
局属性必须全部大写,否则视为局部属性。
例如:
<Property
Id="HASDESKTOP" Value="1"/>
如果改为小写,那么其他文件(也许是
fragment
)的代码调用属性无效。
搜索、判断得到的属性一律为全局
属性,大写。例如:
<Property Id="VC71PATH">
<RegistrySearch Id="VC71" Type="raw" Root="HKLM"
Key="SOFTWARE\Microsoft\VisualStudio\7.1" Name="InstallDir"/>
</Property>
上述例子为在注册表中查找
VC71
的
InstallDir
的值,如存在将值付给
VC71PATH
,不存在则
VC71PATH
为空。
6)
安装包的中文化
Wix
默认的语言为
en-us
,中文化需要另外添加
zh-cn
或
zh-tw
的描述文件。
拥有了中文拓展的文件以后,在代码中使用
loc
调用属性即可,使用方式与
en-us
无异。
当然也可以自定义一些中文化的标签,格式为:
<WixLocalization
Culture="zh-cn"
xmlns="http://schemas.microsoft.com/wix/2006/localization">
<String
Id="LicenseThirdPartText" Overridable="yes">
请仔细阅读以下声明
</String>
</WixLocalization>
调用方式为:
text
=”!(loc.LicenseThirdPartText)”
中文语言包下载地址为:http://download.csdn.net/salever
7)
内置
CustomAction
的使用
1. Quiet Execution Custom
Action
安静模式下执行操作。允许用户在后台执行一些命令,但是不
出现执行窗口。
例
1
,安静模式下执行
CMD
操作
<Property Id="QtExecCmdLine" Value="command line to run"/>
<CustomAction
Id="QtExecExample" BinaryKey="WixCA" DllEntry="CAQuietExec"
Execute="immediate" Return="check"/>
<InstallExecuteSequence>
<Custom Action="QtExecExample"
After="TheActionYouWantItAfter"/>
</InstallExecuteSequence>
采用安静模式执行
CMD
操作,但是不出现
CMD
命令窗口。注意
Value
中的命令以及应用程序必须加引
号,即使没有空格也要加上。
例
2
,安静模式下执行其他应用程序操作
<CustomAction
I
d="QtExecDeferredExampleWithProperty_Cmd"
Property="QtExecDeferredExampleWithProperty"
Value=""[#MyExecutable.exe]"" Execute="immediate"/>
<CustomAction
Id="QtExecDeferredExampleWithProperty" BinaryKey="WixCA"
DllEntry="CAQuietExec"
Execute="deferred"
Return="check" Impersonate="no"/>
<InstallExecuteSequence>
<Custom Action="QtExecDeferredExampleWithProperty_Cmd"
After="CostFinalize"/>
<Custom
Action="QtExecDeferredExampleWithProperty"
After="TheActionYouWantItAfter"/>
</InstallExecuteSequence>
2.ShellExecute
CustomAction
执行打开文档或
URL
等操作。典型应用为安装完成后打开帮助
文件或则运行安装程序。
例:
<Property Id="WixShellExecTarget" Value="myapplication.exe"
/>
<CustomAction Id="LaunchApplication"
BinaryKey="WixCA"
DllEntry="WixShellExec"
Impersonate="yes" />
</Product>
分享到:
相关推荐
Windows Installer XML(WiX)是一个开源工具集,用于创建Windows安装程序。它使用XML格式来定义安装包的组件,使得...在实际工作中,结合提供的`Wix使用整理.doc`文档,可以进一步学习和掌握WiX的具体用法和最佳实践。
WiX使用XML语法,可以创建完全定制化的安装程序,适合大型项目和企业级应用。 4. Electron Builder:对于基于Electron框架的跨平台桌面应用,Electron Builder是一个很好的选择。它可以生成Windows、macOS和Linux的...
在IT行业中,制作安装文件是软件开发流程中的一个重要环节,它能让用户轻松地在计算机上部署和使用软件。本文将详细讲解安装文件制作的相关知识点,包括安装文件的作用、制作工具的选择、基本步骤以及常见问题。 ...
《NSIS图文教程集锦 - 轻狂志》可能是轻狂志个人整理的一系列NSIS教程,通过图文并茂的方式讲解NSIS的使用。教程可能包括以下部分: 1. **快速入门**:为初学者提供快速上手的教程,包括安装NSIS编译器和编写第一个...
2. **整理驱动文件**:将驱动相关的所有文件,包括.sys、.inf、.dll等,整理到一个目录下。 3. **创建INF文件**:INF文件是驱动安装的关键,它包含了驱动的描述、安装路径、依赖项等信息。确保INF文件正确无误,...
- WiX (Windows Installer XML):微软提供的XML格式的构建工具,用于创建Windows Installer MSI包,适合大型企业级应用。 - Advanced Installer:商业级打包工具,提供丰富的定制选项和自动化脚本支持。 - ...
注意,这种方法适用于小型项目,如果项目较大或有复杂的依赖关系,可能需要使用更专业的打包工具,如Inno Setup、Advanced Installer或WiX等,这些工具能够处理更复杂的情况,如注册COM组件、安装.NET Framework等。...
2. **资源整理**:收集图片、音频、配置文件等资源,并放入指定目录。 3. **版本控制**:确保所有必要的文件都在版本控制系统中。 4. **依赖管理**:处理第三方库和框架,确保它们与项目一起打包。 5. **生成安装包*...
4. **打包工具**:为了打包WPF应用,开发者通常会使用ClickOnce或WIX等工具。ClickOnce提供了一种简单的部署方式,用户只需点击即可安装,但对自定义需求的支持有限。相比之下,WiX允许创建高度定制化的安装程序,...
在完成任务的过程中,学生需要设计演示文稿的结构和风格,收集整理食品安全与营养知识,并制作图文并茂的幻灯片。此外,为提升观众观看体验,学生还需学习添加动画和过渡效果。最后,通过演示文稿的演讲与分享,学生...
例如,在您的案例中,“摄影快闪”可能是一个短暂的摄影活动,而“模板相册”则可能包含了一系列设计好的页面布局,用于展示快闪活动的照片,使得参与者可以快速地整理和分享他们的作品,无需从零开始设计每个页面。...
制作安装程序,你可以选择使用各种工具,如Inno Setup、NSIS (Nullsoft Scriptable Install System)、WiX(Windows Installer XML)等。这些工具提供了脚本化的界面,允许开发者自定义安装过程的每个细节。例如,...
8. **数据分析**:对于大型活动,可能会收集门票销售、参与者反馈等数据,IT人员需要使用Excel或数据分析工具(如Tableau、Power BI)进行数据整理和分析,以评估活动效果。 9. **网络安全**:在分享和存储敏感信息...
- **安装程序制作**:使用工具如WiX Toolset或Setup and Deployment Projects in Visual Studio来创建自定义安装程序,方便用户安装应用。 - **自动更新机制**:探讨如何实现应用程序的自动检查更新功能,保持应用...
然而,在一些特定的企业或旧版应用环境中,ActiveX仍被广泛使用。 7. **打包和注册的自动化**:现代开发环境中,有多种工具可以帮助开发者自动化打包和注册过程,例如WiX Toolkit、NSIS(Nullsoft Scriptable ...
4. **资源文件整理**:包含图标、帮助文档、许可协议等,这些是提升用户体验的重要组成部分。确保它们被正确地嵌入到安装包中。 5. **测试打包**:在不同的操作系统和硬件环境下进行测试,以确保打包后的程序可以在...
windwos下使用firebreath框架实现插件的整个过程文档整理。 文档包含: 1. firebreath---环境的搭建 2. firebreath---创建plugin插件 3. firebreath---在插件中实现功能 4. firebreath---插件的调试方法 5. ...
安装打包工具的主要任务是将源代码编译后的可执行文件、库文件、配置文件等资源整理成一个独立的安装包。这个过程通常包括以下几个步骤: 1. **资源收集**:收集程序运行所需的全部文件和资源,如DLL文件、配置文件...
- **安装脚本**:创建安装包的第一步是编写安装脚本,这通常使用专门的打包工具完成,如NSIS(Nullsoft Scriptable Install System)、Inno Setup或WiX Toolset。这些脚本定义了安装过程中要执行的步骤,包括文件...
- **网站搭建**:使用WordPress、Wix等平台建立学生会官方网站,发布活动信息和重要通知。 - **移动应用**:开发手机应用程序,方便学生获取信息、参与投票或报名参加活动。 #### 6. **网络安全意识** - **培训与...