我刚刚开始使用 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...]
但是,我不希望安装程序必须事先知道配置选项是什么;我只是希望它扫描现有文件,如果发现缺少任何选项,则从安装程序中添加新选项。
这可能吗?