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

Wix 被广泛应用在制作安装包程序,相比于微软官方提供的安装包模板更灵活和便捷。

一、环境搭建:

网站地址:https://wixtoolset.org

1. 安装Wix,必备

2. 安装VS 扩展,根据自己使用的VS版本下载相应的扩展。可选,为了方便的使用VS创建wix工程并编译。

二、安装包目标应用程序:

目的:安装一个exe ,一个dll,一个pdf文件

制作流程:

1. 编写符合wix规范的一份wxs类型的文件

2. 使用命令编译中间产物

candle.exe SampleFirst.wxs

3. 使用命令得到最终产物

light.exe SampleFirst.wixobj

产物:

三、最基本的元素介绍

1. Product 元素

Product 元素主要描述安装后的应用程序的信息。它需要两个唯一的GUID

Id:即product code,代表一个

UpgradeCode: 代表一个产品,相同产品安装包不需要再修改这个GUID

剩下的信息主要显示在控制面板里,参照如下:

2. Package 元素

Package元素主要是描述安装包本身的信息,它有个比较重要的Id属性,只要不同安装包都需要一个唯一的GUID。

wix为了方便允许使用*代表GUID,编译时会被替换成GUID。

还有一些描述信息如下:

3. Component 元素

Component元素主要代表安装的文件,它需要一个唯一的GUID。

一个Component元素可以包含一个File元素,一个File可以指向一个文件,用Source属性标记这个文件的位置。

安装包编译后会将文件打包进安装包,安装包负责安装文件。

我们可以这样一条一条的罗列出需要安装的文件,整理出一组Component元素。

这一组安装的文件需要放到用户的机器上的某个文件夹下面,如果需要在wix里面写好,可以参考这个嵌套顺序写:

TARGETDIR > ProgramFilesFolder > xxx > xxx > ...

ProgramFilesFolder 是一个内建关键字,代表用户机器的C盘下的ProgramFiles文件夹

举例:

TARGETDIR > ProgramFilesFolder > AcmeSoftWareFolder > Foobar 1.0

安装好之后的目录如下:

可以看到和之前我们在wxs文件里面写的结构一致。

还需要注意,要使用 ComponentRef 的Id属性引用刚才的Component, 并且包在 Feature 元素里,安装包才会装这些Component

四、VS创建安装包程序工程:

1. 打开VS,新建一个wix 工程

2. VS已经帮我们创建好了基本的wxs文件

3. 现在只需要使用VS 即可编译,省去了刚才麻烦的命令。

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

时间: 2024-10-10 23:49:03

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

Spring学习(二)——使用用Gradle构建一个简单的Spring MVC Web应用程序

1.新建一个Gradle工程(Project) 在新建工程窗口的左侧中选择 [Gradle],右侧保持默认选择,点击next,模块命名为VelocityDemo. 2.在该工程下新建一个 module,在弹出的窗口的左侧中选择 [Gradle],右侧勾选[Spring MVC],如下图所示: 并勾选[Application server],下方选择框中选择Tomcat7.0,如无该选项,则选中右边的 [ New... ] -- [ Tomcat Server ], 配置 Tomcat .配置好后

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

在 wix 中经常使用变量和条件判断,在这里也做一个总结 一. 变量 1. windows installer 使用关键字 windows 安装包的关键字,它的值是需要推迟到安装包在用户的机器,安装中才能确定并赋值的 举例,我们之前写的这句话 <Property Id="USER32VERSION"> <DirectorySearch Id="SystemFolderDriverVersion" Path="[SystemFolder]&

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

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

虚拟机部署度量快速开发平台服务端出现ora-27101错误的一个解决方法

最近在使用hyper-v虚拟机部署系统总出现的一个数据库错误,部署情况如下:1.把之前现有的一个服务端环境的hyper-v停止,拷贝出去vhd文件2.建立新的虚拟机,选择拷贝出去的文件3.启动新的虚拟机,并更改虚拟机的计算机名称,修改oracle数据库的监听和服务名.4.重启oracle的实例和监听.5.连接到数据库,发现报告以下错误:Error:ORA-01034:Oracle not availableORA-27101:shared memory realm dose not exists

自己使用的一个.NET轻量开发结构

三个文件夹,第一个是放置前端部分,第二个是各种支持的类文件,第三个是单元测试文件. Core文件类库 放置的是与数据库做交互的文件,以及一些第三方类库,还有与数据库连接的文件 1.Lasy.Validator是一个基于Attribute验证器,我觉得这种验证方式在挺便捷的,具体可以在这里查看到http://www.cnblogs.com/over140/archive/2009/07/04/1515892.html2.ToJson是一个将数据转换成json格式的字符串的一个类库,很便捷3.NPi

《移动Web前端高效开发实战》笔记2——使用Gulp构建一个ECMAScript 6和Sass应用

8.3.1 安装和配置 运行Gulp需要Node.js环境,请参看第二章内容搭建Node.js环境.使用NPM全局安装Gulp,命令如下: npm install gulp-cli –g 然后,在项目根目录下创建package.json文件,命令如下: npm init 根据引导配置项目信息.然后安装Gulp依赖包,命令如下: npm install gulp –save-dev 在项目根目录下,创建gulpfile.js文件,内容如下: var gulp = require("gulp&quo

DeviceOne 让你一见钟情的App快速开发平台

接触 DeviceOne 要从15年11月开始说起了,因项目和产品时间需求接触了快速开发平台,DeviceOne是非常棒的一个平台,双向数据绑定,可以自定义指令,过滤器等等.总之非常好用完全超出了我们功能需求.之后我们使用了混合型开发平台,没有达到原生App的体验和流畅,在页面切换以及页面滚动的时候都非常卡顿,说实话真心的拿不出手的产品啊. 我们老大最后还是很厉害的果断的选择了 DeviceOne这个平台,当时我很不情愿毕竟这个项目我都写了70%了DeviceOne我却一点都没有接触过.不过当我

《盟威软件快速开发平台》开发

来源:http://www.accessoft.com/rdp/tutorial/main.html 因此在使用<盟威软件快速开发平台>时,会有一些特别的讲究,如数据和程序分离(分为后台数据库和前台客户端).默认采用非绑定式窗体.尽量避免使用"OLE对象"或"附件"等其它数据库不支持或对性能影响比较大的字段数据类型等等. 关于软件开发的要点 进行正式开发前,如果你想开发的软件相对较复杂,模块功能比较多,务必要尽量做好前期需求分析.系统整体规划设计等工作,

开个博客记录django快速开发平台的开发进度

是的,我来重复的造个轮子! 造这个轮子是因为我没有找到合适的.使用django开发的快速开发平台. 今天开始尝试自己写一个快速开发平台的框架,将来开发业务系统时应该会用得上. So, 开个贴子纪念一下! 为什么要造轮子 django自带了admin后台可以快速的对model进行CRUD操作,而我呢由于严重的惰性使然, 不想再重新做一整套对model进行CRUD操作的界面了,虽然还有很多第三方库可以使用,但总觉得不适合国情(也或许是我没有找到,欢迎大家推荐),所以我的想法是直接在django ad