2012-01-04 160 views
15

我有我的应用程序的WiX 3.6(2011年10月)安装程序。我的应用程序需要在系统中安装另一项服务。我以这种方式向我的安装程序添加了MSI文件:如何添加一个MSI文件到我的安装程序

<Fragment> 
    <PackageGroup Id="MyService" > 
     <MsiPackage Id="MyService" Name="MyService" SourceFile="MyService.msi" DisplayInternalUI="yes" EnableFeatureSelection="yes"> 
     </MsiPackage> 
    </PackageGroup> 
</Fragment> 
<Fragment> 
    <ComponentGroup Id="APPFILES"> 
    ... 
</Fragment> 

安装程序工作正常,但此附加MSI文件未安装。我错过了什么?

回答

5

确保您使用烧录:http://robmensching.com/blog/posts/2009/7/14/Lets-talk-about-Burn

的MSI不能包含其他MSI,所以你也应该得到一个EXE文件。确保通过该EXE启动安装

+0

你的意思是我需要使用exe而不是msi?像这样 Oleg 2012-01-04 13:40:53

+0

否。最终包(包含MSI的包)是EXE。我添加了更多详细信息的链接。 – 2012-01-04 13:57:04

+0

我很蠢;-),但我没有看到我可以如何将我的第二个MSI添加到引导程序?我看到如何添加sql服务器等,但如何添加我的第二个安装程序msi包?我的意思是示例“A Sample!”.. – Oleg 2012-01-04 15:59:41

16

您无法从其他MSI安装一个MSI。你需要做的是创建一个bootstrapper链接现在死了,可能合适replacement link,安装每个MSI的顺序。 Wix 3.6有一个名为Burn的内置引导程序。

Here is another helpful link,致谢Matt Clarkson

+0

我创建了新的Bundle项目,其中包括我的msi文件。这只是一种方法吗? – Oleg 2012-01-04 13:34:40

+0

@Oleg:有*可能*有其他方式来做到这一点(如果适用,使用合并模块,我认为),但我一直通过引导程序完成它。你并不是被迫使用Burn。我过去的做法是创建一个引用Wix库的Visual Studio项目。然后你可以创建自定义动作(通过C#或其他)。但底线是,您需要从exe启动安装,以便每个msi都可以按顺序运行。 – 2012-01-04 13:41:07

+0

这两个链接现在都死了:( – 2012-11-06 17:03:41

相关问题