2011-12-06 75 views
1

我有一個應用程序MainApp引用另一個項目MyDLL.dll。在MyDLL項目中,我在Settings.settings文件中做了一些用戶設置,這些設置可能會在運行時更改。所以看起來這些設置被保存在app.config文件MyDLL中。但問題是,主要項目是MainApp,並且MyDLL.dll.config沒有,就我所見,被複制到MainApp輸出文件夾。這反映在事實上,即使我將設置保存在MyDLL的代碼中,下次運行MainApp時,設置已恢復爲默認設置。如何保留引用程序集的應用程序設置?

我必須在這裏丟失一些非常明顯的東西。必須有相關組件保留其設置值的方法。但是如何?

+0

@ user978511 - 'Settings.Default.Save()'。但你是正確的檢查。 ;) –

+0

不,我正在使用'Settings.settings'文件。對不起,我應該在這個問題上做得更清楚 - 將會被編輯。 –

回答

3

儘管您可以將app.config添加到庫項目中,但它不起作用。配置鏈接到應用程序,而不是庫。

您需要在應用程序本身中創建設置和配置。你可以做一些事情,如果你真的想要包括圖書館的app.config,但那可能不會達到你想要的。最好在應用程序中處理您的配置。

這是爲什麼?因爲最重要的是可以首先爲你的圖書館設置用戶設置?圖書館不應與任何特定類型的應用程序綁定。如果您在Windows服務或ASP.NET應用程序中使用它,該怎麼辦?

+0

好吧,公平點,但在我的特殊情況下,我認爲這是合理的。 'MainApp'是一個WinForms exe文件,'MyDLL'是一個表格庫。我想恢復的設置與'MyDLL'中定義的特定網格的列寬有關;我想保存用戶的偏好。由於代碼位於'MyDLL'中,因此在這裏進行保存也是有意義的,而且從'MyDLL'我必須訪問調用應用程序的設置。如果有必要的話,我可以讓一個來自MainApp的監聽器來捕獲列重定位並保存在那裏...但我並不真的想進入那個... –

+1

我只是確定你的意思是* ,但這些都沒有改變.NET配置(以及因此設置)不能像你想要的那樣的事實。應用程序設置用於應用程序,而不是庫。 –