您的问题不清楚您要在哪里做事,所以我将从头开始。
创建一个新的 Wix 刻录引导程序项目。这是安装依赖项的位置,然后将生成现有的 Wix 3.5 安装程序。
下载 .net 3.5 SP1 完整包并记下用于下载它的直接 url。
使用 heat.exe(在 wix 3.6 bin 目录中)运行以下命令,该命令将生成一个包含 .net 安装程序详细信息的 WXS 文件。
heat.exe payload [path_to_net_installer] -o [path_to_wxs]
this.will 在 wxs 中为您提供以下内容:
<RemotePayload CertificatePublicKey="F321408E7C51F8544B98E517D76A8334052E26E8"
CertificateThumbprint="D57FAC60F1A8D34877AEB350E83F46F6EFC9E5F1"
Description=".NET Framework 3.5 Setup"
Hash="3DCE66BAE0DD71284AC7A971BAED07030A186918"
ProductName=".NET Framework 3.5"
Size="242743296"
Version="3.5.30729.1" />
将此作为元素的子元素添加到引导程序项目中,ExePackage
并使用之前保存的下载 url 更新元素。这将自动下载 .net 安装程序,或者您可以将其放在引导程序 exe 旁边,它会检测到它。
在包含 .net ExePackage 和安装程序的 MsiPackage的Bundle中创建一个链。然后你会得到类似的东西(我会让你填写很多必需的属性!):
<Bundle Name="$(var.SkuName)"
Copyright="$(var.Copyright)"
Manufacturer="$(var.Manufacturer)"
Version="$(var.ProductVersion)"
UpgradeCode="$(var.UpgradeCode)">
<Chain>
<ExePackage Id="dotNetFX3.5">
<RemotePayload />
</ExePackage>
<MsiPackage Id="MyMsi" />
</Chain>
</Bundle>
构建,然后你应该有一个包含你的 msi 的大 exe,或者如果你选择不压缩它一个执行你的 msi 的 exe(它需要在同一个文件夹中)。