我使用WiX 3.7编写了一个引导程序,该程序首先安装.net 4.5,然后安装我的应用程序的MSI:
<Chain>
<PackageGroupRef Id="NetFx45Redist"/>
<MsiPackage Id="MainAppPackage"
After="NetFx45Redist"
SourceFile="..\bin\Debug\MyApp.msi"/>
</Chain>
WiX documentation表示
NetFx45Redist
是独立设置,而NetFx45Web
是Web设置。在我将引导程序的Id设置为NetFx45Redist
后,其大小与我在使用NetFx45Web
指定的ID进行构建时的大小相同。我很好奇,所以我下载了WiX源(v3.7)。令我惊讶的是,两个PackageGroup
元素之间几乎没有区别。DownloadUrl
的NetFx45Web
是http://go.microsoft.com/fwlink/?LinkId=225704,而NetFx45Redist
的是http://go.microsoft.com/fwlink/?LinkId=225702。根据RemotePayload\@Size
属性,NetFx45Web
是1005568字节,而NetFx45Redist
是50352408字节。我希望
NetFx45Redist
将在我的引导程序中包含.net 4.5安装程序,并且不需要下载。我看错了。那我应该使用哪个PackageGroup
?两个下载的.net 4.5安装之间有什么区别? 最佳答案
这两个软件包组都可以从Microsoft下载文件。两者都提供Microsoft .NET 4.0框架的完整设置。较小的是引导程序,然后仅下载系统缺少的部分。较大的组件具有任何系统可能需要的所有组件。
WixNetFxExtension没有提供非下载软件包组,这有点令人惊讶。但是,由于您已经浏览过NetFx4.5.wxs
源代码,因此将所需的属性复制到自己的包组中很简单。
编辑:
我还应该指出,引导程序采用here所述的命令行参数。 -layout dvd
会将软件包下载到名为dvd
的文件夹,该文件夹可用于脱机安装。 (显然,NetFx45Web不适合这样做。)