2010-03-20 115 views
3

我想在使用MSI安裝程序安裝我的WPF應用程序期間修改MyApp.exe.config文件中的userSettings部分(Properties.MyApp.Default)。在MSI安裝過程中更改userSettings

我基本上實現了它這樣的優秀文章:http://raquila.com/software/configure-app-config-application-settings-during-msi-install/

不同的是,我不是編輯的appSettings但userSettings部分。

問題是,雖然代碼運行正常,但不會保存設置。安裝後,配置文件包含我在開發環境中使用的舊設置。 我也嘗試重寫OnAfterInstall(System.Collections.IDictionary stateSaver)而不是Install(System.Collections.IDictionary stateSaver),但它沒有區別。

這裏是一個要改變的配置值的代碼:

protected override void OnAfterInstall(IDictionary savedState) 
{ 
    base.OnAfterInstall(savedState); 

    string targetDirectory = Context.Parameters["targetdir"]; 
    string tvdbAccountID = Context.Parameters["TVDBACCID"]; 
    // read other config elements... 

    Properties.Settings.Default.Tvdb_AccountIdentifier = tvdbAccountID; 
    // set other config elements 

    Properties.Settings.Default.Save(); 
} 

不知道如何保存這些變化?我已經閱讀了Wix,但這對我來說似乎是一種矯枉過正。

在此先感謝!

回答

0

用戶設置保存在當前用戶的本地文件夾中,通常類似於C:\ Users \ Username \ AppData \ Local \ Manufacturer \ ApplicationName \ Application.exe_StrongName \ VersionNumber \ user.settings注意位置隨應用程序版本而變化。

您的exe文件的UserSettings部分包含新用戶的默認值。

檢查this question瞭解更多信息。

+0

在MSI安裝期間保存用戶設置時,它們被保存到C:\ Users \ Username \ AppData \ Local \ Microsoft_Corporation \ SomeHash \ Version(MSI version?)\ user.config。 – 2010-10-08 03:01:33