2012-04-24 79 views
2

我有一個程序,我想將信息存儲在一個字符串中。我一直在使用Properties.Setting.Default.STRINGname來存儲信息,這些信息在我的電腦上正常工作,我可以看到保存的字符串(當我進入應用程序的設置時)。但是,當我將應用程序添加到新PC時,它會損失字符串。有沒有辦法可以編輯這些信息並將其保存在應用程序中?所以基本上我需要能夠將用戶設置轉換爲應用程序設置,但是在運行時之後。將設置保存爲一個exe

var settings = Properties.Settings.Default; 
     settings.H1 = textbox1.text; 
     settings.H2 = textbox2.text; 

     settings.Save(); 
+0

您正在開發什麼.NET版本? – balexandre 2012-04-24 19:35:36

回答

2

MSDN explicit says有所瞭解:

設置是應用範圍的只讀只能改變在設計時間或在應用程序會話之間更改.config文件。用戶範圍爲的設置爲,但是,可以在運行時寫入,就像您要更改任何屬性值一樣。新值在應用程序會話期間持續存在。通過調用Save方法,您可以在應用程序會話之間持續更改設置。

爲此,應用程序設置將永遠不會爲您工作。但是,如果您使用的是用戶範圍設置,它確實有效,但是很快將應用程序從一臺計算機更改爲另一臺計算機(如您所說),您將丟失設置,因爲這是另一臺計算機(另一個用戶範圍).. 。

有辦法繼續使用相同的設置,你可以做,至少有兩件事情:

  • 使用.config文件保存設置(這是一個XML文件)
  • 使用服務主機的設置,你可以閱讀,如果用戶有互聯網接入

你不能做的是

  • 只使用一個可執行文件,將設置從計算機保存到計算機。
0

用戶設置的編譯與應用程序設置不同,因此編譯後無法轉換。爲什麼不使用應用程序設置編譯

+0

因爲我希望能夠添加信息或更改它,因爲我找到了要添加的內容,但無需每次重新編譯程序 – 2012-04-24 19:30:21

+0

您不應該重新編譯才能更改設置......只需修改您的app.exe.config文件... – therealmitchconnors 2012-04-24 19:40:41

0

您正在使用的代碼應該保存用戶設置。請記住,用戶設置將保存在用戶的數據文件夾中。不在安裝應用程序的配置文件中(比如程序文件)。這是通常的路徑:

<Profile Directory>\<Company Name>\<App Name>_<Evidence Type>_<Evidence Hash>\<Version>\user.config 

See this links form more information

+0

'...當我將應用程序添加到新PC時...' - 他想保存跨計算機的設置... – balexandre 2012-04-24 19:53:27