2009-06-28 108 views
8

所以我有一些設置是用戶作用域,但由於某些原因,它們沒有被保存到.exe.config文件。我做到以下幾點:爲什麼我的應用程序設置不能持久?

Properties.Settings.Default.Email = "[email protected]"; 
Properties.Settings.Default.Save(); 

但我期待在debug文件夾中設置文件,它仍然是我在Visual Studio中設置的默認。我做錯了嗎?

回答

13

用戶設置是特定於用戶的,因此它們不會被保存回系統範圍的.exe.config文件。

LocalSettingsProvider文檔:

應用範圍設置和 默認的用戶範圍設置存儲在一個名爲 application.exe.config文件,該文件是在同一目錄下創建 作爲 可執行文件。應用程序 配置設置是隻讀的。 特定用戶數據存儲在名爲username.config的文件 中,存儲在 用戶的主目錄下。

所以對於一個UserSettingsTest應用剛剛從VS我結束了的路徑調試器(因此vshost位)下運行:內根據應用數據保存

C:\Users\Jon\AppData\Local\UserSettingsTest 
    \UserSettingsTest.vshost.e_Url_pdqoppugkz1vaawbhwkkcu5ibxpi2fgu 
    \1.0.0.0\user.config 
+1

我有WinXP,但在C:\ Documents and Settings \ Ryan \中沒有看到任何此類文件或文件夾。應用數據。這是正確的地方嗎? – ryeguy 2009-06-28 19:49:20

+0

恩,不知道在XP上。將在早上嘗試。 – 2009-06-28 20:45:39

0

所有的用戶範圍設置指示您的應用程序版本和名稱的文件夾。

您可以在「應用程序設置」對話框中單擊「同步」來查看這些文件夾。

在Vista中一般:

  • C:\用戶[currentuser] \應用程序數據\本地[公司名稱] [AppName的] \版本
  • C:\用戶[currentuser] \應用程序數據\漫遊[公司名稱] [AppName的] \版本

這樣做的話,由於與當前用戶UAC的相關設置。在Vista中,您甚至可以看到即使應用程序範圍內的設置也不存儲在配置文件中。

[公司名稱]和[產品名稱]來自您的裝配信息設置。

15

如果您的程序集信息設置爲自動生成任何版本號(1.0。*),那麼每次調試應用程序時,版本號都會有所不同,因此每次都會創建一個新文件。

如果這是你需要的設置文件執行升級的情況:執行升級打完

Properties.Settings.Default.Upgrade() 

您還可以通過默認設置的NeedsUpgrading設置以true並將其設置爲false每次啓動應用程序時不更改版本號的最終用戶將不會一直升級

相關問題