我被要求在现有的WiX包中添加一个功能。 具体来说,我需要运行一个小型的c#应用程序,并将一个int返回给WiX,以有条件地控制进一步的操作。 我可以从ExePackage help看到有ExitCode,但这是成功,错误,scheduleReboot或forceReboot的枚举。
我用谷歌搜索了一下,我想知道我是否错过了这一点。我可以在WiX内部实现C#进程以让用户提供我需要的信息,但是现有的软件包已经有了用C#编写的具有特定风格的自定义ExePackages,所以如果可以的话,我想继续使用它。 (现有包不返回任何所需的值)
我可以这样做,还是我需要尝试在WiX中完全操作?
作为参考,其中一个现有包看起来像这样:
<ExePackage
SourceFile="..."
DisplayName="License Key"
InstallSize="0"
Permanent="yes"
InstallCommand="/ignoreIfLicensed"
RepairCommand="/ignore"
UninstallCommand="/ignore"
/>
答案 0 :(得分:0)
对<ExePackage ...>
的引用意味着您希望条件在WIX包中运行。在这种情况下,我认为您的选项有限,您只能将ExePackage
的返回值映射到forceReboot
等全局行为。
你有<MsiPackage...>
个引用吗?如果有,您可以使用自定义操作在每个<MsiPackage...>
内移动条件行为来调用exe并设置属性。然后,可以将该属性用作要有条件安装的每个<component...>
中的条件。有关自定义操作设置属性的详细信息,请参阅Using a WiX custom action to set a property's value。