2
我剛開始使用WiX的是我爲我的現有應用程序的安裝框架。該應用程序具有一個App.Config文件,用於控制各種客戶特定的設置。大多數這些設置都是內部修改的,並且不是用戶可控制的。有WiX的升級配置文件有丟失物品
這樣一個配置文件的一個例子是:
[...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...]
當應用程序的新版本交付,它將有一個股票configuation文件,其中包括任何新的應用程序設置:
[...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...]
但是,我不希望安裝程序必須事先知道配置選項是什麼;我只是想讓它掃描現有的文件,並從安裝程序中添加新的選項(如果找不到)。
這可能嗎?
雖然我不害怕(好吧,也許有點)使用C++通過你所引用的文章中提到的WcaAddTempRecord()方法添加臨時記錄的,我寧願使用託管語言。是否有一個可以執行此操作的.NET庫調用,或者是否必須P /調用此庫? - 沒關係!也許我應該在我開始提問之前閱讀整篇文章。 :) – Greenknight
簡短的答案是DTF,也是WiX工具集的一部分。 :) –