我使用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
是网络设置。在我将Id设置为NetFx45Redist
的情况下构建引导程序后,与我在指定NetFx45Web
Id时构建它的大小相同。我很好奇所以我下载了WiX源(v3.7)。我惊讶地发现两个PackageGroup
元素之间没有什么区别。
DownloadUrl
的{{1}}为http://go.microsoft.com/fwlink/?LinkId=225704,而NetFx45Web
的{{1}}为http://go.microsoft.com/fwlink/?LinkId=225702。根据{{1}}属性NetFx45Redist
是1005568字节,RemotePayload\@Size
是50352408字节。
我预计NetFx45Web
将在我的引导程序中包含.net 4.5设置,并且不需要下载。我觉得这是错的。我应该使用哪个NetFx45Redist
以及2个下载的.net 4.5安装之间有什么区别?
答案 0 :(得分:7)
两个软件包组都是为了从Microsoft下载文件而编写的。两者都提供Microsoft .NET 4.0框架的完整设置。较小的是引导程序,然后只下载系统缺失的部分。较大的一个包含任何系统可能需要的所有部分。
WixNetFxExtension不提供非下载软件包组有点令人惊讶。但是,既然您已经查看了NetFx4.5.wxs
源代码,那么将所需的属性复制到您自己的包组中应该是一件简单的事情。
编辑:
我还应该指出,引导程序采用here所述的命令行参数。 -layout dvd
会将软件包下载到名为dvd
的文件夹,该文件夹可用于离线安装。 (显然,NetFx45Web不适合。)