让WiX升级包含缺少项目的配置文件

时间:2013-04-12 22:11:52

标签: xml installer wix configuration-files

我刚刚开始使用WiX作为我现有应用程序的安装框架。该应用程序有一个App.Config文件,可控制各种客户特定的设置。这些设置中的大多数都是内部修改的,并且不受用户控制。

这种配置文件的一个例子是:

[...snip]
<applicationSettings>
    <setting name="DatabaseConnectionString" serializeAs="String">
        <value>Data Source=localhost;Initial Catalog=CustomersDatabase;Persist Security Info=True;Integrated Security=True</value>
    </setting>
</applicationSettings>
[snip...]

当交付较新版本的应用程序时,它会有一个库存配置文件,其中包含任何新的应用程序设置:

[...snip]
<applicationSettings>
    <setting name="DatabaseConnectionString" serializeAs="String">
        <value>Data Source=localhost;Initial Catalog=NonProductionDatabase;Persist Security Info=True;Integrated Security=True</value>
    </setting>
    <setting name="NewConfigItem" serializeAs="String">
        <value>ConfigDetails</value>
    </setting>
</applicationSettings>
[snip...]

我想设置我的WiX安装程序,在升级过程中,创建一个合并的App.Config,这样现有设置不会受到影响,但是新的配置项会以默认值插入:

[...snip]
<applicationSettings>
    <setting name="DatabaseConnectionString" serializeAs="String">
        <value>Data Source=localhost;Initial Catalog=CustomersDatabase;Persist Security Info=True;Integrated Security=True</value>
    </setting>
    <setting name="NewConfigItem" serializeAs="String">
        <value>ConfigDetails</value>
    </setting>
</applicationSettings>
[snip...]

但是,我不希望安装程序必须事先知道配置选项是什么;我只是希望它扫描现有文件,并在安装程序中添加新选项(如果发现缺少任何选项)。

这可能吗?

1 个答案:

答案 0 :(得分:1)

是的,您需要编写自定义操作来读取现有的xml文件。然后,我建议根据读取的数据将临时记录添加到XmlConfig表中described in this question