2016-03-08 22 views
2

我有一個WinForm項目,其中包含一個窗體和一個應用程序設置文件。當窗體加載,它從應用程序設置和讀取如果程序成功運行(即文件寫入到目標)的應用程序設置保存爲下運行。當程序複製到其他地方時,出現應用程序設置後

我注意到一個奇怪的行爲,因爲我建我的解決方案:

當我清理和重建我的解決方案,並在bin/Release文件夾測試我的節目,一切都看起來不錯和應用程序設置是明確的。但是,當我將相同的文件複製到另一個目標並從那裏運行程序時(即使.exe.config文件也被新的乾淨版本替換)似乎複製版本仍然記住我的應用程序設置。什麼可能造成這種情況?

+0

我曾經有這個問題與我的Windows服務。 VS似乎以某種方式緩存舊版本。幫助我的是完全創建一個新項目。 – coderblogger

+0

@avantvous我明白了!新項目的行爲與Visual Studio的行爲方式有什麼不同? – Disasterkid

+0

沒有保證,但它每次都適合我。試一試,但仍舊保留舊的副本以防萬一。 – coderblogger

回答

1

當你在一個正常的方式使用Settings.Settings,考慮到這些因素將幫助您有關於用戶設置一個更好的理解:

  • 當您保存使用用戶設置Properties.Default.Settings.Save()當前值設置存儲在​​在一個文件夾中,您的應用程序的名稱位於獨立部署的子文件夾中。

  • 每個部署都有一條獨特的路徑,因此當您將應用程序複製到先前使用的路徑中時,它假定爲您之前部署的更新,並且您以前的用戶設置將被記住並與新添加的設置合併。

  • 如果您將應用程序複製到全新的路徑中,那麼它會將其視爲新的部署,並且您以前的用戶設置將不會被記住。

  • 只有默認值存儲在您的應用程序的.exe旁邊的.config文件中,因此刪除它們對記住用戶保存的值沒有影響。

相關問題