0

我已经成功地让我的概念证明 MSI 安装程序创建了一个 xml 文件,并在全新安装时按照我的意愿更新了元素。我有 6 个功能,如果选择安装该功能,我想要为该功能创建一个节点和一个基于属性的属性集。

如果我修改安装并删除以前安装的功能,我希望为其创建的 xml 节点保持不变,并且我希望将我在安装时设置的属性设置为基于相同的属性(现在具有不同的值)进行更新。

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

当我删除一项功能时,CA ISXmlUnInstall 正在运行 - 但似乎该操作所做的只是删除节点或离开它......

4

1 回答 1

2

您可能遇到的问题是,尽管您在某些东西(例如 registery、ini 或 xml)中使用了该属性,但 Windows 安装程序本身并没有在其数据库中保留属性。你必须自己做。因此,如果您想要进行修复、更改、升级或其他任何操作,并且想要拥有相同的属性数据,您不仅需要将其保存到某个东西(比如 xml),而且还必须有一个对应的 AppSearch(XmlSearch)可以将其拉回属性中,因此它具有在 UI 期间显示的值或稍后写回 XML 的值。

还要考虑支持一种模式,即仅当真实属性还没有值时,它才会被读入临时属性并分配给真实属性。这样,某人可以进行静默安装(升级)并将属性作为覆盖传递给先前配置的内容。(没有被搜索破坏)

于 2012-02-16T18:07:13.577 回答