Installshield使用用户输入值修补XML文件更改

时间:2022-12-17 15:07:41

I'm using InstallShield 2010 to create a patch of my product. There are many changes so I am using the patch design view to create a MSP patch that differences my original product release MSI and the current MSI. My installer uses the XML file changes InstallShield feature to write XML file values during installation. Some of the values written are collected via custom dialogs during install. My issue is that when applying the patch these values are NULL because there are no user dialogs shown during the MSP patch installation. What happens is since the values are not populated from user input, the MSP will put blank values into the XML which essentially deletes the values that the user specified during the initial installation. Can I add dialogs to the patch so I can re-collect the necessary values from the user during patch install?

我正在使用InstallShield 2010来创建我的产品补丁。有很多变化,所以我使用补丁设计视图来创建一个MSP补丁,它区别于我的原始产品版本MSI和当前的MSI。我的安装程序使用XML文件更改InstallShield功能在安装期间写入XML文件值。编写的某些值是在安装期间通过自定义对话框收集的。我的问题是,在应用补丁时,这些值为NULL,因为在MSP补丁安装期间没有显示用户对话框。发生的情况是,由于未从用户输入填充值,因此MSP会将空白值放入XML中,这实际上会删除用户在初始安装期间指定的值。我可以在补丁中添加对话框,以便在补丁安装期间从用户重新收集必要的值吗?

One thing I was thinking was to write a boot strapper batch script and pass the property values via an msiexec.exe call in the manor of PROPERTY="VALUE", but I was hoping identify some alternatives.

我想的一件事是编写一个启动strapper批处理脚本并通过在PROPERTY =“VALUE”的庄园中的msiexec.exe调用传递属性值,但我希望找到一些替代方案。

1 个解决方案

#1


1  

Generally you should have searches read the current values into the properties. You might be able to do this with the XML System Search support in InstallShield, or you may have to write a custom action. (The XML System Search support doesn't handle namespaces as well as the XML File Changes does).

通常,您应该将搜索当前值读入属性。您可以使用InstallShield中的XML System Search支持执行此操作,或者您可能必须编写自定义操作。 (XML System Search支持不处理命名空间以及XML文件更改)。

Once you build this change into the Upgraded installer and patch, your patch should similarly run these searches before running the XML changes. In full UI maintenance scenarios this may have the benefit of showing up as default values already populated, but make sure of that too.

将此更改构建到升级的安装程序和修补程序后,您的修补程序应在运行XML更改之前类似地运行这些搜索。在完整的UI维护方案中,这可能具有显示已填充的默认值的好处,但也要确保这一点。

#1


1  

Generally you should have searches read the current values into the properties. You might be able to do this with the XML System Search support in InstallShield, or you may have to write a custom action. (The XML System Search support doesn't handle namespaces as well as the XML File Changes does).

通常,您应该将搜索当前值读入属性。您可以使用InstallShield中的XML System Search支持执行此操作,或者您可能必须编写自定义操作。 (XML System Search支持不处理命名空间以及XML文件更改)。

Once you build this change into the Upgraded installer and patch, your patch should similarly run these searches before running the XML changes. In full UI maintenance scenarios this may have the benefit of showing up as default values already populated, but make sure of that too.

将此更改构建到升级的安装程序和修补程序后,您的修补程序应在运行XML更改之前类似地运行这些搜索。在完整的UI维护方案中,这可能具有显示已填充的默认值的好处,但也要确保这一点。