2012-02-16 18 views
0

我已经成功地获得了MSI安装程序创建xml文件的概念证明,并且按照我希望的全新安装更新了元素。 我有6个功能,如果要选择要安装的功能,我希望为该功能创建一个节点,并根据属性设置一个属性。InstallShield2010 XML文件修改和卸载更改

如果我修改了安装和移除先前安装的功能,我希望XML节点创建为它坚持我想设置我设置的属性安装基于相同的属性将被更新(现在有不同的价值)。

是否可以利用InstallShield的现有功能来做到这一点?看来我可以,并避免编写一个自定义操作来更新我的xml时删除功能。似乎没有关于isxmlcfg.dll和其中的自定义操作的很多文档。

当我删除功能的CA ISXmlUnInstall运行 - 但似乎所有的行动确实是删除节点或离开它...

回答

2

你可能遇到的问题是,虽然你使用的属性(比如registery,ini或xml)windows安装程序本身并不会在其数据库中持久化属性。你必须这样做你的自我。所以,如果你想修复,更改,升级或任何你想拥有相同的属性数据,你不仅需要将它保存到某些东西(比如xml),而且你还必须拥有一个相应的AppSearch(XmlSearch)可以将其拉回到属性中,以便在UI期间显示值,或稍后写回到XML。

另外考虑支持一种模式,在该模式下,只有当实体属性尚未具有值时,才会将其读入临时属性并分配给实值属性。这样,有人可以进行无提示安装(升级)并将该属性作为覆盖传递给之前配置的内容。 (没有通过搜索敲诈)

+0

对物业的优秀建议。有了这个,并决定让我自己的自定义操作顺序和条件运行卸载我工作。我曾希望避免制作一个CA,但我耗尽了时间。 – thekbb 2012-02-17 18:26:51