这个功能类似于Heat.exe,指定文件夹,生成对应的WIX标签。Winform做的,代码简单,生成的标签需要粘贴到对应的目录才能使用,并不是一步到位。

需要设定两个参数,一个是文件夹路径,一个是文件夹对应的变量。

会根据文件夹的目录生成Directory目录、DirectoryRef目录(包含file和Component)以及ComponentRef目录。需要复制下来后粘贴到对应的部分。GUID都是自动生成,Id是根据文件或者文件夹的名称得来。id不能以数字开头,所以File带了file前缀,Commonet带有cmp等,如下所示。同名文件已经处理。Name不变,但id是Name加数字后再加密得来。

  <DirectoryRef Id='dir5690DC79E0CD37D2967E826537142104' >
<Component Id='cmp5690DC79E0CD37D2967E826537142104' Guid='3447437F-6B98-47FD-9B32-03B69B285BEA' >
<File Source='$(var.Dev)HMIRun\SenseLockDrivers\win98\setup.exe' Id='file8B1FDFAC8FE38356708B4BB683FF7CCA' KeyPath='yes' />
</Component>
</DirectoryRef>

因为最近打包,光一个DirectoryRef目录就有近7k行,手写是不可能的。所以才写了这么个小工具。

在此分享给大家,祝打包顺利。http://pan.baidu.com/s/1kT3e6V1

Wix 安装部署教程(八) 自动生成XML小工具的更多相关文章

  1. WIX 安装部署教程(六) 为你收集的七个知识点

    前段时间整理5篇WIX(Windows Installer XML)的安装教程,但还不够完善,这里继续整理了七个知识点分享给大家.WIX最新版本3.8,点击下载 WIX安装部署(一)同MSBuild自 ...

  2. Wix 安装部署教程(九) --用WPF做安装界面

    经常安装PC端的应用,特别是重装系统之后,大致分为两类.一类像QQ,搜狗输入法这样的.分三步走的:第一个页面可以自定义安装路径和软件许可.第二个页面显示安装进度条,第三个页面推荐其他应用.先不管人家怎 ...

  3. Wix 安装部署教程(十一) ---QuickWix

    这次发布的是这两天做的一个WIX工具QuickWIX,主要解决两个问题点1.对大文件快速生成wix标签(files,Directories,ComponentRef):2.比较前后两次工程的差异.大的 ...

  4. Wix 安装部署教程(十六) -- 自动生成多语言文件

    因为持续集成需要,所有项目编译完之后生成一个多语言的安装包.之前生成mst文件都是手动操作,而且mst文件必须每次重新和新的安装包“关联”,否则中文的安装包去调用英文的资源的时候就会报类似于“类型转换 ...

  5. Wix 安装部署教程(十二) -- 自动更新WXS文件

    上一篇分享了一个QuickWIX,用来对比两个工程前后的差异,但是这样还是很繁琐,而且昨天发现有Bug,目录对比有问题.这次改变做法,完全让程序自动去更新WXS文件,然后再用CCNet去自动编译,这样 ...

  6. Wix 安装部署教程(十三) -- 多语言安装包

    这几天摸索WIX的多语言安装包(这里是Wix的setup 工程,不是Bundle),终于走通了,感谢网友uni的指点.WIX的多语言安装包能够根据系统环境自动切换界面语言,你也可以通过命令指定语言.下 ...

  7. Wix 安装部署教程(四) 添加安装文件及快捷方式

    通过之前三篇的介绍,大家对wix的xml部署方式也应该有一些认识,今天天气不错,再来一发.主要介绍桌面,开始菜单,卸载等功能的如何添加.希望园友们支持! 一.如何添加文件 Demo打包程序很简单,就一 ...

  8. Wix 安装部署教程(三)自定义安装界面和行为

    接上一篇自定义安装界面,这篇继续探索,首先介绍下,Wix为我们定义了五种风格,每种风格的UI都是有一定顺序的.我们可以改变安装顺序,也可以完全自定义一个Dialog插入其中.比如Wix_Mondo 风 ...

  9. Wix 安装部署教程(十五) --CustomAction的七种用法

    在WIX中,CustomAction用来在安装过程中执行自定义行为.比如注册.修改文件.触发其他可执行文件等.这一节主要是介绍一下CustomAction的7种用法. 在此之前要了解InstallEx ...

随机推荐

  1. UIActivityIndicatorViewStyle

    UIActivityIndicatorView *indicatorV = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyl ...

  2. Gray Code

    Gray Code The gray code is a binary numeral system where two successive values differ in only one bi ...

  3. Python小练习五

    # 一个简单的数据库 # 字典使用人名作为键.每个人用另一个字典来表示,其键'phone'和'addr'分别表示它们的电话号码和地址. people = { 'Alice':{ ', 'addr': ...

  4. rhel7报错整理

    报错现象1: 安装过程需要一段时间,等待完成.   重启后进程     输入 q   再次输入 yes   重启后进入           报错现象2:     挂载镜像后,系统一重启报错:   来自 ...

  5. 如何定制Activity的标题栏

    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.main); //自定义标题栏        mW ...

  6. Connect to EC2 if losing Private Key

    http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair

  7. Java中将0x开头的十六进制字符串转换成十进制整数

    1.Integer.toString(int i) 由于input(输入数据)是以0x开头的字符串,并不是整型.因而在用 String s = Integer.toString(input); 时用会 ...

  8. SNMP–Simple Network Management Protocol

    I am planning to write an introduction and simple implementation of SNMP in software, when my work w ...

  9. pushState 和 replaceState

    使用此方法浏览器前进后退仍然可查看对应内容 设置值 history.pushState({}, "页面标题", "xxx.html"); history.rep ...

  10. 【转】浅谈html5网页内嵌视频

    转自 http://www.pchou.info/web/2014/01/30/52ea01e13a7f1.html