我正在使用InstallShield 2010来创建我的产品补丁。有很多变化,所以我使用补丁设计视图来创建一个MSP补丁,它区别于我原来的产品版本MSI和当前的MSI。我的安装程序使用XML文件更改InstallShield功能在安装期间写入XML文件值。编写的某些值是在安装期间通过自定义对话框收集的。我的问题是,在应用补丁时,这些值为NULL,因为在MSP补丁安装期间没有显示用户对话框。会发生什么是因为没有从用户输入填充值,MSP会将空白值放入XML中,这实际上删除了用户在初始安装期间指定的值。我可以在补丁中添加对话框,以便在补丁安装期间从用户重新收集必要的值吗?
我想到的一件事是写一个启动strapper批处理脚本并通过在PROPERTY =“VALUE”的庄园中的msiexec.exe调用传递属性值,但我希望找到一些替代方案。
答案 0 :(得分:1)
通常,您应该将搜索当前值读入属性。您可以使用InstallShield中的XML System Search支持执行此操作,或者您可能必须编写自定义操作。 (XML System Search支持不处理名称空间以及XML文件更改)。
将此更改构建到升级后的安装程序和修补程序后,您的修补程序应该在运行XML更改之前运行这些搜索。在完整的UI维护方案中,这可能具有显示已填充的默认值的好处,但也要确保这一点。