2011-07-21 137 views
1

我有用C#(.net 3.5)編寫的Windows應用程序,並且有一個Settings.settings文件來保存應用程序的設置。Windows應用程序設置

當我做這樣的事情:

Properties.Settings.Default.HSLastSend = DateTime.Now; 
Properties.Settings.Default.Save(); 

會保存並堅持當我重新啓動應用程序,但是Settings.settings文件仍然保留了原來的價值。我似乎無法找到這個新值存儲在哪裏。我期望Settings.settings文件在我進入它時具有新的值。

這是一個問題還是正常的?

乾杯提前,

斯圖

回答

1

Setting.settings爲應用程序提供默認值,而不是改變一個,保存在您的二進制文件資源。您可以通過在保存更改後的設置後加載應用程序來證明它,即使設置文件仍舊是「舊」,您也會得到更改的值。

編輯

只需注意Properties.Settings。 默認

在XP的機器它應該是在:

C:\ Documents和Settings \ 「YourMachineUserName」 \應用數據\

問候。

+0

好吧,如果我分發應用程序就目前的立場,它會用二進制保存的版本,而不是在Settings.settings默認? – stuartw87

+1

另一個重要的事情是考慮設置的範圍。它可以是用戶或應用程序,這意味着它會被保存在不同的地方。 –

+0

@J。斯蒂恩同意。 – Tigran

0

這是正常的 的設置文件只存儲靜態值,設計用於在一個集中的地方動態值,如 DateTime.Now不能以這種方式存儲存儲 運行應用程序的設置,如果你想在當前日期時間,爲什麼不稱之爲 在你的代碼

+0

-1,它保存了應用程序上次執行的操作,而不是當前日期時間。無論如何,這是我對代碼的理解。 –

+1

這正是我解釋你不能讓設置文件存儲一個持久性更新的值,它只會保存存儲到它的最後一個值嘗試讀下一個更接近下一次投票某人之前的迴應 –