一、不使用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. Jquery树控件ZTree异步加载

    异步加载的意思就是: 当点击展开树节点时,才去请求后台action返回点击节点的子节点数据并加载. 这里面主要设计ztree的setting变量的async属性设置: var setting = { ...

  2. MyBatis中Like语句使用方式

    oracle数据库: SELECT * FROM user WHERE name like CONCAT('%',#{name},'%') 或 SELECT * FROM user WHERE nam ...

  3. Spring Boot 系列教程6-全局异常处理

    @ControllerAdvice源码 package org.springframework.web.bind.annotation; import java.lang.annotation.Ann ...

  4. cocos2d-x 那些常犯的错误

    Label::_label; if(_label==NULL){ //初始化_label的代码 } //指针默认值不等于NULL,需要赋初始值Label::_label=NULL; string st ...

  5. [原]JavaScript总结

    匿名函数 var ff = function () {             return 'hhqybsl';         };         var result = ff();      ...

  6. 转:LoadRunner常用函数列表

    Web相关函数 函    数 功 能 描 述 web_custom_request 用户可以通过该函数自行创建一个HTTP请求的函数 web_image 模拟用户单击图片操作的函数 web_link ...

  7. 编辑距离算法详解:Levenshtein Distance算法

    算法基本原理:假设我们可以使用d[ i , j ]个步骤(可以使用一个二维数组保存这个值),表示将串s[ 1…i ] 转换为 串t [ 1…j ]所需要的最少步骤个数,那么,在最基本的情况下,即在i等 ...

  8. MVC 使用Jquery的$.post传递参数

    MVC中,如果要使用 $.post 给 COntroller 传递参数,需要类实现 属性 get set,这样才行

  9. springMVC简单的安全防御配置

    1,使用 spring form 标签 防 csrf 攻击 2,标明请求方法:RequestMethod.GET,RequestMethod.POST, PATCH, POST, PUT, and D ...

  10. 关于python的可变和不可变对象

    在python中所有都是对象,在python中只有list和dict是可变对象,其他都是不可变对象. 具体参照:http://www.cnblogs.com/lovemo1314/archive/20 ...