一、不使用merge module的ModuleSubstitution和ModuleConfiguration

1.创建MyMsm.msm

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Module Id="MyMergeModule" Language="1033" Version="1.0.0.0">
<Package Id="dc9818b3-eee7-4c77-a2ba-fd742af8ab00" Manufacturer="Silly" InstallerVersion="200" /> <Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="INSTALLDIR" />
</Directory> <Component Guid="{B848E5EB-7985-4970-9D37-079A5C426808}" Directory="INSTALLDIR">
<File Id="_test.txt_4F7C5800031B" Source="test.txt" KeyPath="yes" />
</Component> </Module>
</Wix>

2.创建msi

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="b58a9d8b-479c-41c7-9de2-e635ce8a07a6" Name="MyMsi" Language="1033" Version="1.0.0.0" Manufacturer="Silly" UpgradeCode="c55a86e3-a7ac-491b-99b2-668771be11d4">
<Package InstallerVersion="200" Compressed="yes" />
<Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="INSTALLDIR">
<Merge Id="MyMsm.msm" SourceFile="MyMsm.msm" Language="1033" DiskId="1" />
</Directory>
</Directory>
<Feature Id="ProductFeature" Title="MyMsi" Level="1">
<MergeRef Id="MyMsm.msm"/>
</Feature>
</Product>
</Wix>

二、使用merge module的ModuleSubstitution和ModuleConfiguration

  1.创建MyMsm.msm

    

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Module Id="MyMergeModule" Language="1033" Version="1.0.0.0">
<Package Id="dc9818b3-eee7-4c77-a2ba-fd742af8ab00" Manufacturer="Silly" InstallerVersion="200" /> <Configuration Name="DIR_RETARGET_Silly" Format="Key" Type="Directory" DefaultValue="Silly" NonNullable="yes"/>
<Substitution Table="Directory" Row="INSTALLDIR" Column="Directory_Parent" Value="[=DIR_RETARGET_Silly]"/> <Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="INSTALLDIR" />
</Directory> <Component Guid="{B848E5EB-7985-4970-9D37-079A5C426808}" Directory="INSTALLDIR">
<File Id="FIL_test.txt_4F7C5800031B" Source="test.txt" KeyPath="yes" />
</Component> </Module>
</Wix>

2.创建MyMsi.msi

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="b58a9d8b-479c-41c7-9de2-e635ce8a07a6" Name="MyMsi" Language="1033" Version="1.0.0.0" Manufacturer="Silly" UpgradeCode="c55a86e3-a7ac-491b-99b2-668771be11d4">
<Package InstallerVersion="200" Compressed="yes" />
<Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="Silly" />
<Directory Id="INSTALLDIR">
<Merge Id="MyMsm.msm" SourceFile="MyMsm.msm" Language="1033" DiskId="1" >
<ConfigurationData Name="DIR_RETARGET_Silly" Value="Silly"/>
</Merge>
</Directory>
</Directory>
<Feature Id="ProductFeature" Title="WixProject1" Level="1">
<MergeRef Id="MyMsm.msm"/>
</Feature>
</Product>
</Wix>

使用msm文件创建msi的更多相关文章

  1. HOW TO: Creating your MSI installer using Microsoft Visual Studio* 2008

    Quote from: http://software.intel.com/en-us/articles/how-to-creating-your-msi-installer-using-visual ...

  2. [vs2008]Visual Studio 2008 SP1添加或删除功能提示查找SQLSysClrTypes.msi文件

    前言 今天接到领导布置的一个任务,是之前同事负责的项目.离职了,现在客户有些地方需要修改,由于我之前参与过,就落在我的头上了. 然后我就把代码弄了过来,打开发现其中需要用到水晶报表.(我觉得不好用,不 ...

  3. 如何解决MSI类型的Sharepoint Server2016 安装即点即用的office 2016 plus问题

    前提 在sharepoint server 2016安装office 2016 plus提示如下错误: 解决方法 Ø 概念 1. 即点和即用的概念:即点即用是一种通过 Internet 安装和更新 O ...

  4. py-faster-rcnn之从solver文件创建solver对象,建立pythonlayer

    faster-rcnn在训练阶段,根据一个solver的prototxt文件创建相应的网络.仅凭一个prototxt就创建网络?其实还涉及到自定义的PythonLayer. 比如lib/rpn/anc ...

  5. 简化MSI在WIN10的安装

    这里给大家分享一个简化MSI安装的工具 InstallByDrag: 在win10系统中,通过双击方式打开 MSI 安装文件,可能被提示由于dll加载问题无法安装,这是由于没有使用管理员权限运行.而M ...

  6. 电脑运行msi安装包提示the error code is 2503/2502如何解决

    当在电脑中运行msi安装包时,出现the error code is 2503或者2502错误提示,其实是由于没有运行的权限导致的,但是又不能右击以管理员身份运行,那么应该如何操作呢?对于这样的问题, ...

  7. [转]MSI安装程序中的文件替换

    原文链接:http://teach.hanzify.org/article/652-1233562028.html 前言 最近有汉化朋友问起如何不重新制作MSI文件,而直接用汉化好的文件替换MSI安装 ...

  8. 在 C# 中执行 msi 安装

    有时候我们需要在程序中执行另一个程序的安装,这就需要我们去自定义 msi 安装包的执行过程. 需求 比如我要做一个安装管理程序,可以根据用户的选择安装不同的子产品.当用户选择了三个产品时,如果分别显示 ...

  9. 服务器支持AspJpeg和JMail45_free.msi组件

     解决办法: 1.在服务器上安装上AspJpeg和JMail45_free.msi后, 2.在cmd中输入regsvr32 c:/windows/SysWOW64/aspjpeg.dll 3.把网站对 ...

随机推荐

  1. CASE WHEN的两种格式

    CASE WHEN的两种格式 1.简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END 2.Case搜索函数 CASE ...

  2. Array.length vs Array.prototype.length

    I found that both the Array Object and Array.prototype have the length property. I am confused on us ...

  3. 一款值得推荐的shell工具

    1. 一款比较出色的shell工具 熟练的运用shell语言可以提高我们的工作效率,而一款好的shell工具能提高学习的效率,fish shell就是这样一款工具.并且是一款跨平台的工具, 同时可以在 ...

  4. Tree Restoring

    Tree Restoring Time limit : 2sec / Memory limit : 256MB Score : 700 points Problem Statement Aoki lo ...

  5. iOS8中的动态文本

    原文链接 : Swift Programming 101: Mastering Dynamic Type in iOS 8 原文作者 : Kevin McNeish Apple声称鼓励第三方App能够 ...

  6. Android中的对话框AlertDialog使用技巧合集-转载

    Android中的对话框AlertDialog使用技巧合集     文章来自:http://blog.csdn.net/blue6626/article/details/6641105   今天我用自 ...

  7. Lucene 简单手记http://www.cnblogs.com/hoojo/archive/2012/09/05/2671678.html

    什么是全文检索与全文检索系统? 全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查 ...

  8. Lucene入门教程(转载)

    http://blog.csdn.net/tianlincao/article/details/6867127 Lucene教程 1 lucene简介 1.1 什么是lucene     Lucene ...

  9. 学习笔记——抽象工厂模式Abstract Factory

    在工厂模式的基础上,通过为工厂类增加接口,实现其他产品的生产,而不用一类产品就增加一个工厂. 依然以<真菌世界>游戏故事类比,树作为工厂,如果现在有两类树,一类生产快速弄真菌飞机和20毫米 ...

  10. 【gcd】 最大公约数

    int gcd(int a,int b) { int r; ) { r=a%b; a=b; b=r; } return a; }