一个项目 Code Complete 后,程序员们欢欣鼓舞,以为事情到此结束,可以 Happy 了。其实 Code Complete 五十之于百里。一个没有运行在设备上,为人们创造价值的项目是注定失败的。

把程序部署到目标机器上去运行,运行中发现 Bug 需要修复然后重新部署。这些工作的强度和痛苦程度比程序员调试一个 Bug 要大的多, 为什么?显而易见,程序员调试Bug 还有断点,还有界面,但是部署过程中可能只有 Log 文件,只有烦人的系统错误提示。

为了解决部署和更新的问题,Windows 提供安装和更新机制,但是多年来创建 MSI, MSM, MSP 等安装更新文件一直比较困难,普通的 IT 人员很难掌握,学校成本很高。

为了解决这个问题,WIX 项目诞生了。

WIX 是 Windows Installer XML的简称,是使用Xml 配置方式来创建 Windows 安装包的工具。从他的名字可以看出这个工具只能做Widows OS 上的安装包。

WIX 是用C#开发,需要安装相应的 .NET Framework,具体要求看安装说明。此项目最初由微软公司开发, 现在为开源项目。可以从http://wix.codeplex.com/ 这里下载安装WIX 工具。

WIX 能够与 Visual Studio 进行集成,从而方便开发者更好更好的创建 MSI 和 MSM 安装包。在成功下载安装 WIX 后,重启 VS, 然后点击新建项目,可以发现多了一个项目类型 Windows Installer XML(WIX). 可以通过它方便的创建安装包。

虽然WIX 是用 C# 语言开发的,依赖于 .NET Framework。 但是它能打包的程序,项目并没有限制在 .NET 上,你可以用它来打包其它语言开发的程序,如 VB, C++, Java 等。

WIX 具有以下优点(王婆卖瓜啦!):

  • 声明式编程
  • 完全使用 Windows Installer 的功能
  • XML 配置
  • 和 IDE(VS2010, 2012)等集成
  • 更易于团队开发
  • 开源
  • 免费:这个赞一下

WIX 发展到现在,已经足够的稳定,以至于Microsoft 使用 WIX 来开发 Microsoft Office 2007 的安装程序。

WIX 学习笔记- 1 简介的更多相关文章

  1. Linux内核学习笔记-1.简介和入门

    原创文章,转载请注明:Linux内核学习笔记-1.简介和入门 By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...

  2. React学习笔记 - JSX简介

    React Learn Note 2 React学习笔记(二) 标签(空格分隔): React JavaScript 一.JSX简介 像const element = <h1>Hello ...

  3. CUBRID学习笔记 1 简介 cubrid教程

    CUBRID 是一个全面开源,且完全免费的关系数据库管理系统.CUBRID为高效执行Web应用进行了高度优化,特别是需要处理大数据量和高并发请求的复杂商务服务.通过提供独特的最优化特性,CUBRID可 ...

  4. shiro学习笔记_0100_shiro简介

    前言:第一次知道shiro是2016年夏天,做项目时候我要写springmvc的拦截器,申哥看到后,说这个不安全,就给我捣鼓了shiro,我就看了下,从此认识了shiro.此笔记是根据网上的视频教程记 ...

  5. Mybatis-Plus 实战完整学习笔记(一)------简介

    第一章    简介      1. 什么是MybatisPlus                MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只 ...

  6. ElasticSearch学习笔记-01 简介、安装、配置与核心概念

    一.简介 ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.支持通过HTTP使用JSON进 ...

  7. python学习笔记1--python简介和第一行代码编写

    一.什么是python? python是一种面向对象,解释型语言,它语法简介,容易学习.本节博客就来说说本人学习python的心得体会. 二.python环境安装 目前python版本有python2 ...

  8. symfony学习笔记1—简介

    1.symfony快速入门还是先看代码结构把,这个是拿到代码的第一印象,app/:整个应用的配置,模版,translations,这个可能是多语言文件什么,src/:项目php文件,vendor/:第 ...

  9. REVIT个人学习笔记——1.简介及熟悉界面

    此贴并非教学,主要是自学笔记,所述内容只是些许个人学习心得的记录和备查积累,难以保证观点正确,也不一定能坚持完成. 如不幸到访,可能耽误您的时间,也难及时回复,贴主先此致歉.如偶有所得,相逢有缘,幸甚 ...

随机推荐

  1. 利用R语言打造量化分析平台

    利用R语言打造量化分析平台 具体利用quantmod包实现对股票的量化分析 1.#1.API读取在线行情2.#加载quantmod包3.if(!require(quantmod)){4. instal ...

  2. python 中去除BOM头

    在window的环境下,保存的文本文档会加上三个字符0xEF 0xBB 0xBF的头部,这三个字符可能会影响对文本的读取,形成乱码,在这里记录下如何避免. 首先发现直接保存为ASCII的文本文件是不包 ...

  3. 用做网页开发经历了三个阶段(附长篇讨论) good

    用做网页开发经历了三个阶段:第一阶:傻干阶段使用Intraweb,傻瓜型,无需知道javascript,html,css,会pascal就可以了. 第二阶:困惑阶段使用Intraweb,有很多限制,比 ...

  4. EF 6 调用存储过程时返回多结果集和OUTPUT参数问题

    原文地址:http://q.cnblogs.com/q/56836/ 各位大侠,提问一个关于EF6调用存储过程时返回多结果集和OUTPUT参数问题 目前已经可以调用存储过程并且可以返回多个结果集. 但 ...

  5. C++STL_类模板举例

    #include<stdio.h> #include<typeinfo.h> template <class T1,class T2> class A{ T1 i; ...

  6. Linux下的Oracle 11gr2安装完成的的自启动操作。

    Linux下的Oracle在安装结束后是处于运行状态的.重启机器后,Oracle不会像在Windows下那样将Oracle添加到Windows服务,在linux下需要手动启动Orcle服务 以orac ...

  7. 配置启动挂载:fstab文件具体解释

    fstab文件介绍 fstab文件包括了你的电脑上的存储设备及其文件系统的信息.它是决定一个硬盘(分区)被如何使用或者说整合到整个系统中的文件. 详细来说:用fstab能够自己主动挂载各种文件系统格式 ...

  8. Copy from chromium-dev!

    https://app.yinxiang.com/pub/gguangle0/chromium-dev 做了一些搬运工的活..............

  9. 自己动手写CPU之第五阶段(3)——MIPS指令集中的逻辑、移位与空指令

    将陆续上传本人写的新书<自己动手写CPU>(尚未出版),今天是第17篇.我尽量每周四篇 5.4 逻辑.移位操作与空指令说明 MIPS32指令集架构中定义的逻辑操作指令有8条:and.and ...

  10. Django学习笔记(一)

    之前没有接触过django,甚至python也是最近才刚刚着手学习,可以说是零基础.要学习一门新技术,官方文档自然是首选的入门教程.开发环境:python2.7+django1.7+win 1.首先, ...