使用msm文件创建msi
一、不使用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的更多相关文章
- 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 ...
- [vs2008]Visual Studio 2008 SP1添加或删除功能提示查找SQLSysClrTypes.msi文件
前言 今天接到领导布置的一个任务,是之前同事负责的项目.离职了,现在客户有些地方需要修改,由于我之前参与过,就落在我的头上了. 然后我就把代码弄了过来,打开发现其中需要用到水晶报表.(我觉得不好用,不 ...
- 如何解决MSI类型的Sharepoint Server2016 安装即点即用的office 2016 plus问题
前提 在sharepoint server 2016安装office 2016 plus提示如下错误: 解决方法 Ø 概念 1. 即点和即用的概念:即点即用是一种通过 Internet 安装和更新 O ...
- py-faster-rcnn之从solver文件创建solver对象,建立pythonlayer
faster-rcnn在训练阶段,根据一个solver的prototxt文件创建相应的网络.仅凭一个prototxt就创建网络?其实还涉及到自定义的PythonLayer. 比如lib/rpn/anc ...
- 简化MSI在WIN10的安装
这里给大家分享一个简化MSI安装的工具 InstallByDrag: 在win10系统中,通过双击方式打开 MSI 安装文件,可能被提示由于dll加载问题无法安装,这是由于没有使用管理员权限运行.而M ...
- 电脑运行msi安装包提示the error code is 2503/2502如何解决
当在电脑中运行msi安装包时,出现the error code is 2503或者2502错误提示,其实是由于没有运行的权限导致的,但是又不能右击以管理员身份运行,那么应该如何操作呢?对于这样的问题, ...
- [转]MSI安装程序中的文件替换
原文链接:http://teach.hanzify.org/article/652-1233562028.html 前言 最近有汉化朋友问起如何不重新制作MSI文件,而直接用汉化好的文件替换MSI安装 ...
- 在 C# 中执行 msi 安装
有时候我们需要在程序中执行另一个程序的安装,这就需要我们去自定义 msi 安装包的执行过程. 需求 比如我要做一个安装管理程序,可以根据用户的选择安装不同的子产品.当用户选择了三个产品时,如果分别显示 ...
- 服务器支持AspJpeg和JMail45_free.msi组件
解决办法: 1.在服务器上安装上AspJpeg和JMail45_free.msi后, 2.在cmd中输入regsvr32 c:/windows/SysWOW64/aspjpeg.dll 3.把网站对 ...
随机推荐
- CASE WHEN的两种格式
CASE WHEN的两种格式 1.简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END 2.Case搜索函数 CASE ...
- 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 ...
- 一款值得推荐的shell工具
1. 一款比较出色的shell工具 熟练的运用shell语言可以提高我们的工作效率,而一款好的shell工具能提高学习的效率,fish shell就是这样一款工具.并且是一款跨平台的工具, 同时可以在 ...
- Tree Restoring
Tree Restoring Time limit : 2sec / Memory limit : 256MB Score : 700 points Problem Statement Aoki lo ...
- iOS8中的动态文本
原文链接 : Swift Programming 101: Mastering Dynamic Type in iOS 8 原文作者 : Kevin McNeish Apple声称鼓励第三方App能够 ...
- Android中的对话框AlertDialog使用技巧合集-转载
Android中的对话框AlertDialog使用技巧合集 文章来自:http://blog.csdn.net/blue6626/article/details/6641105 今天我用自 ...
- Lucene 简单手记http://www.cnblogs.com/hoojo/archive/2012/09/05/2671678.html
什么是全文检索与全文检索系统? 全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查 ...
- Lucene入门教程(转载)
http://blog.csdn.net/tianlincao/article/details/6867127 Lucene教程 1 lucene简介 1.1 什么是lucene Lucene ...
- 学习笔记——抽象工厂模式Abstract Factory
在工厂模式的基础上,通过为工厂类增加接口,实现其他产品的生产,而不用一类产品就增加一个工厂. 依然以<真菌世界>游戏故事类比,树作为工厂,如果现在有两类树,一类生产快速弄真菌飞机和20毫米 ...
- 【gcd】 最大公约数
int gcd(int a,int b) { int r; ) { r=a%b; a=b; b=r; } return a; }