我使用WiX 3.5制作安装程序,我需要复制许多文件和文件夹。 我使用heat.exe来做到这一点,它工作正常。 但我需要在安装过程中调用bat文件,并且bat文件存在于我上面提到的那些文件夹中。该bat文件依赖于其他一些文件。 我可以调用批处理文件,但到那时其他文件都没有加载。 以下是我用于运行bat文件的自定义操作。
<Custom Action="InstallFeature" After="InstallFinalize"><![CDATA[
(&TypicalFeature=3) AND NOT(!TypicalFeature=3)
]]></Custom>
需要帮助,我可能在调用bat文件后加载文件。
由于 拉维S
答案 0 :(得分:3)
从MSI调用批处理文件是非常糟糕的主意。 MSI是声明性的 - 您只需定义系统在成功安装时的外观,如果出现问题,MSI可以回滚更改。
但是,通过使用批处理文件,Windows Installer不知道对系统进行了哪些更改,也无法回滚任何内容。
我会查看批处理文件正在做什么,并在WiX中实现它的功能,或者通过C ++ / C#中的自定义操作以及相应的回滚操作来实现。 (本机代码是最好的,但它很难。管理代码是下一个最好的东西,VBScript是最后的手段 - 但仍然比批处理文件更好)