2010-03-29 65 views
26

可能重複:
What is the difference between app.config file and XYZ.settings file?設置文件VS的app.config

我真的不理解的設置和配置文件之間的相互作用/差異。如果我添加一個條目到設置文件,它也會被添加到app.config中。這是否意味着更改app.config中的值會更新設置?如果不是,我如何更新實時應用程序中的設置?使用設置文件而不是直接在app.config中放置東西的一般目的是什麼?

+0

類似於http://stackoverflow.com/questions/13100498/c-sharp-app-config-vs-settings-file,它提供了更多的見解。 – 2013-03-20 12:35:28

回答

16

從我可以通過環視來看,似乎設置文件和設計器提供了一種配置文件的包裝。設置設計器控制進入配置文件的一些值,但也會修改Properties目錄中的.settings文件,並更改Settings.Designer.cs文件中生成的代碼。

請注意,在配置文件中,值沒有任何類型,但在.settings文件中,它們具有。現在打開Settings.Designer.cs。您會看到在那裏生成的代碼會將配置文件中的值從您的配置文件中取出,並將其轉換爲正確的類型,如您的.settings文件或設置設計器中指定的那樣。所以它爲你的配置文件中的值提供了一個類型安全的接口。如果您在配置文件中更改了值,那麼下次您轉到設置設計器時,它會詢問您是否要更新.settings以反映這些更改。

所以要回答你的問題,一旦部署了應用程序,只要可以將其轉換爲適當的類型,就可以更改配置文件中的值,否則我猜測它將在Settings.Designer.cs中失敗。我能看到的唯一目的似乎是設計者在處理配置文件的XML時的類型安全性和便利性。

另外,請記住,因爲配置不是版本化文件,所以安裝程序不會在客戶機上更新它們。它不會允許它跺腳任何用戶更改。因此,一旦部署完成,如果將自己的更改放入用戶需要的配置中,則必須手動複製更改。

+0

我認爲還有另一個目的,因爲Settings.Designer.cs被編譯到應用程序中,所以即使刪除app.config它也可以訪問設置。 – 2017-11-17 20:44:33