2008-11-14 59 views
36

我使用app.config文件來存儲一些值(映射數據庫的路徑,數據連接選擇)。這些設置在用戶機器上有所不同,我希望安裝程序正確設置它們。有沒有一個安裝程序可以在安裝過程中使用.NET配置文件,並允許我創建一些對話框來幫助我填寫這些值?如何在安裝過程中修改.NET配置文件?

我知道這個問題可能類似於:Initializing user.config or app.exe.config during install,但我不僅限於VS 2008安裝項目,我想更改配置文件中的設置。

編輯:我看到使用維克斯是一種選擇,但我覺得用大錘開裂核桃。這可能是唯一的解決方案,但我仍然希望簡單。

回答

55

我們使用WIX來更改應用程序的配置文件。它工作得很好,你需要在引用中添加wixUtilExtension.dll。

維克斯樣本:

<Component Id="ChangeConfig" Guid="[YOUR_GUID_HERE]"> 
    <File Id="App.config" Name="MyApplication.exe.config" Vital="yes" KeyPath="yes" Source="[Path to project dir]\app.config" /> 
    <util:XmlFile Id="AppConfigSetConnStr" Action="setValue" Permanent="yes" File="[#App.config]"    
     ElementPath="/configuration/connectionStrings/add[\[]@name='MyDatabaseName'[\]]" Name="connectionString" 
     Value="Your Connection string values here" /> 

</Component> 

它實際上取決於你使用的是創建安裝程序是什麼,你有什麼用?
已經對WIX Tutorial

+0

謝謝。 WIX特性和複雜性仍然讓我感到害怕。我有點走不了那麼簡單的路線:) – 2008-11-14 17:11:57

+13

只是爲了完整;如果您在VS中執行此操作,則需要更改Fragment頂部的標記以包含屬性:xmlns:util =「http://schemas.microsoft.com/wix/UtilExtension。您還需要添加對WixUtilExtension的引用 – 2012-10-15 09:58:56

1

我已經使用WIX工具集來生成msi。該工具允許您在安裝過程中聲明性地指定對諸如app.config之類的XML文件的更改。問題是,雖然有一個重要的學習曲線。搜索wix的sourceforge。

+0

我希望爲中/小項目輕量級的解決方案... :) – 2008-11-14 11:37:59

1

我使用帶有XML插件的NSIS來執行此操作。

3

如果您使用的是VS安裝項目,是否創建了自定義操作?我已經將它們用於從XML值到部署數據庫的所有事情。

相關問題