我使用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元素之间几乎没有区别。

DownloadUrlNetFx45Webhttp://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不适合这样做。)

08-18 04:35