我已成功获得概念证明MSI安装程序创建xml文件,并在全新安装时按照我的意愿更新元素。 我有6个功能,如果选择安装该功能,我想要为该功能创建一个节点,并根据属性设置一个属性。
如果我修改了安装并删除了之前安装的功能,我希望为其创建的xml节点能够持久存储和我希望将我在安装时设置的属性设置为基于相同的属性(现在具有不同的值)。
是否可以利用InstallShield的现有功能来实现这一目标?我似乎可以,并且在删除功能时避免编写自定义操作来更新我的xml。似乎没有太多关于isxmlcfg.dll及其中的自定义操作的文档。
当我删除某个功能时,CA ISXmlUnInstall正在运行 - 但看起来所有操作都会删除该节点或将其保留...
答案 0 :(得分:2)
您可能遇到的问题是,尽管您在某些事物(例如registery,ini或xml)中使用了该属性,但Windows安装程序本身并未在其数据库中保留属性。你必须自己做这件事。因此,如果您想进行修复,更改,升级或其他任何想要拥有相同属性数据的内容,您不仅需要将其保存为某些内容(例如xml),而且还必须拥有相应的AppSearch(XmlSearch)它可以将其拉回到属性中,因此它具有在UI期间显示的值,或者稍后写回XML。
还考虑支持一种模式,在该模式中,只有当不动产尚未具有值时才将其读入临时属性并分配给不动产。这样,有人可以进行静默安装(升级)并将属性作为对先前配置的覆盖进行传递。 (没有被搜索破坏)