我正在尝试使用Burn和WIX 3.6为我的应用程序制作安装程序.安装程序必须能够从Microsoft的网站安装.NET 3.5 SP1.我正在使用WIX 3.5创建的工作WIX项目.如果先前已在目标计算机上安装了.NET 3.5 SP1,则它可以正常工作.第一步似乎是创建一个bundle,所以我在Product.wxs文件中添加了一个元素.当我这样做时,我得到一个错误,说它在架构中无效,我必须有一个.这是否意味着我必须将所有产品定义转移到片段中?目前还不清楚我是怎么做到的.然后事情变得更复杂,因为WixNetfxExtension仅为.NET 4.0和4.5提供PackageRef.我还没准备好将我的应用程序切换到该版本的框架.那么如何从我的捆绑包中的Web源获取.NET 3.5 SP1?
有没有一个在任何地方这样做的工作示例?
在你的问题中你不清楚你在做什么,所以我将从头开始.
创建一个新的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中给你关注:
将此作为ExePackage
元素的子项添加到引导程序项目中,并使用先前保存的下载URL更新元素.这将自动下载.net安装程序,或者您可以将它放在bootstrapper exe旁边,它会检测到它.
在Bundle中创建一个包含.net ExePackage和安装程序的MsiPackage 的链.然后你会得到类似的东西(很多必要的属性我会留下你填写!):
构建,你应该有一个包含你的msi的大exe或如果你选择不压缩它执行你的msi的exe(它将需要在同一个文件夹中).