我正在运行 Visual Studio 2010 和 WiX 3.7。
我已成功创建了一个 WiX 项目,该项目分发我的 XLL 并具有自定义操作以将 XLL 注册到 Excel。我们计划通过带有用户单击按钮链接的 .NET 网页为我们的用户分发 XLL。
我一直在寻找如何获取我的 WiX 项目并将安装日志文件(使用 MSIEXEC 参数)保存到程序文件下的公司目录的示例。我需要创建一个引导程序项目来执行此操作,以便文件可以作为安装的一部分分发,这是否正确?
如果是这样,我有以下问题:
- 如何在引导程序项目中指定输出目录?
- 由于我的 WiX 项目产生 MSI 输出,是否可以在引导程序项目中使用 ExePackage(而不是 MsiPackage)有一个链?我问这个是因为这似乎是拥有 IntallCommand 的唯一方法(否则我会使用 MsiPackage)。
- InstallCommand 的参数是否与从命令行运行 msiexec 的参数相同?
- 如果软件被卸载,它会删除日志文件吗?
- 我会在引导程序项目中引用 MSI WiX 项目吗?如果是这样,我是否可以为 MSI 项目使用变量(即,如果 MSI 项目名称是 MSIPROJ,那么参考变量将是 ($var.MSIPROJ)?
- 我能否像在常规 WiX 设置项目中那样指定输出目录?
如果引导程序项目不是解决方案,我将如何实现目标?
编辑1:
我能够创建一个创建安装日志的引导程序项目(默认情况下在临时目录中)。这带来了一个全新的对话框。
我对此的问题如下:
- 引导程序项目生成的对话框能否反映 MSI 项目中的对话框设置(即)?
资源(即 EULA.rtf、Icon.ico、Dialog.jpg 和 Banner.jpg)是否可以像在 WiX 设置项目中一样指定?
<?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Bundle Name="Name" Version="1.0.0.0" Manufacturer="Company" DisableModify="yes" UpgradeCode="71515514-5c35-4a2f-a782-fe91bf2a5943" Compressed="yes"> <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" /> <Chain> <PackageGroupRef Id="InstallerPackage"/> </Chain> </Bundle> <Fragment> <PackageGroup Id="InstallerPackage"> <MsiPackage SourceFile="$(var.ExcelAddInDeploy.TargetPath)" Compressed="yes" EnableFeatureSelection="no" Vital="yes" DisplayInternalUI="yes"> <MsiProperty Name="MSC" Value="[MSC]" /> </MsiPackage> </PackageGroup> </Fragment> </Wix>
谢谢,
李