我刚刚开始使用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...]
但是,我不希望安装程序必须事先知道配置选项是什么;我只是希望它扫描现有文件,并在安装程序中添加新选项(如果发现缺少任何选项)。
这可能吗?
答案 0 :(得分:1)
是的,您需要编写自定义操作来读取现有的xml文件。然后,我建议根据读取的数据将临时记录添加到XmlConfig表中described in this question。