我使用 WiX 3.7 编写了一个 bootstrap ,它首先安装 .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
的 bootstrap 之后与我使用 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
将在我的 bootstrap 中包含 .net 4.5 设置,不需要下载。我看到这是错误的。其中PackageGroup
那么我应该使用 2 个下载的 .net 4.5 安装有什么区别?
最佳答案
两个包组都被授权从 Microsoft 下载文件。两者都提供了 Microsoft .NET 4.0 框架的完整设置。较小的一个是 bootstrap ,然后只下载系统缺少的部分。较大的具有任何系统可能需要的所有部分。
WixNetFxExtension 不提供非下载包组,这有点令人惊讶。但是,由于您已经查看了 NetFx4.5.wxs
源代码,把你想要的属性复制到你自己的包组中应该是一件简单的事情。
编辑:
我还应该指出 bootstrap 采用命令行参数,如 here 所述. -layout dvd
会将软件包下载到名为 dvd
的文件夹中,可用于离线安装。 (显然,NetFx45Web 不适合这样做。)
关于.net - NetFx45WebLink 和 NetFx45RedistLink 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17190787/