簡體   English   中英

Properties.Settings.Default 存儲在哪里?

[英]Where are the Properties.Settings.Default stored?

我以為我知道這一點,但今天我再次被證明是錯誤的。

運行 VS2008、.NET 3.5 和 C#。 我使用默認值將用戶設置添加到屬性設置選項卡,然后使用以下代碼讀取它們:

myTextBox.Text = Properties.Settings.Default.MyStringProperty;

然后,在用戶編輯選項對話框中的值后,我將其保存如下:

Properties.Settings.Default.MyStringProperty = myTextBox.Text;
Properties.Settings.Default.Save();

我的問題是,這個新值保存在哪里? 可執行目錄中的 MyApp.exe.config 文件沒有更新,它仍然包含默認值。 另外,據我所知,該目錄中的其他文件也沒有更新! 但是,當程序讀回該值時,它會獲取更改后的值,所以我知道它已保存在某處...

這不僅僅是學術問題,今天早上我需要能夠手動編輯該值,當我找不到任何正在改變的東西時,讓自己難住了。

為了使用較新版本的 Windows 策略,默認情況下只允許對 Program Files 文件夾進行讀取訪問(除非您提示使用 UAC 進行提升,但這是另一個主題...),您的應用程序將在%userprofile%\\appdata\\local下有一個設置文件夾%userprofile%\\appdata\\local%userprofile%\\Local Settings\\Application Data取決於您運行的 Windows 版本,用於特定於用戶的設置。 如果您存儲所有用戶的設置,則它們將位於C:\\usersC:\\Documents and Settings下所有用戶配置文件的相應文件夾中(例如: C:\\users\\public\\appdata\\local )。

您可以通過編程方式獲取路徑:

using System.Configuration;  // Add a reference to System.Configuration.dll
...
var path = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath;

感謝您為我指明正確的方向。 我發現 user.config 位於這個怪物:c:\\users\\USER\\AppData\\Local\\COMPANY\\APPLICATION.exe_Url_LOOKSLIKESOMEKINDOFHASH\\VERSION\\user.config。

我不得不在我的應用程序上升級版本,所有設置似乎都消失了。 應用程序使用新版本創建了一個新文件夾並使用默認設置。 花了很長時間才能找到文件的存儲位置,但是只需簡單的復制和粘貼即可將設置設置為新版本。

它保存在您的 Documents and Settings\\%user%\\Local Settings\\Application Data......etc 中,在那里搜索名為user.config的文件

然而,位置可能會改變。

我的一個 Windows 服務在 windows server 2016 中作為本地系統登錄,我可以在 C:\\Windows\\SysWOW64\\config\\systemprofile\\AppData\\Local\\{您的應用程序名稱} 下找到 user.config。

我認為最簡單的方法是在 C 驅動器上搜索您的應用程序名稱,然后檢查 user.config 在哪里

它們保存在YOUR_APP.exe.config ,該文件與YOUR_APP.exe文件保存在同一文件夾中, <userSettings>部分:

   <userSettings>
      <ShowGitlabIssues.Properties.Settings>
         <setting name="SavedUserName" serializeAs="String">
            <value />
         </setting>
         <setting name="SavedPassword" serializeAs="String">
            <value />
         </setting>
         <setting name="CheckSave" serializeAs="String">
            <value>False</value>
         </setting>
      </ShowGitlabIssues.Properties.Settings>
   </userSettings>

這是cs代碼:

public void LoadInfoLogin()
{
    if (Properties.Settings.Default.CheckSave)// chkRemember.Checked)
    {
        txtUsername.Text = Properties.Settings.Default.SaveUserName;
        txtPassword.Text = Properties.Settings.Default.SavePassword;
        chkRemember.Checked = true;
    }
...

如果您使用 Windows 10,這是目錄:

C:\\Users<用戶名>\\AppData\\Local\\

+

<ProjectName.exe_Url_somedata>\\1.0.0.0<filename.config>

用戶特定的設置保存在該應用程序的用戶應用程序數據文件夾中。 查找user.config文件。

我不知道您期望什么,因為用戶通常一開始甚至沒有對可執行目錄的寫訪問權限。

對於任何想知道 Microsoft Store 中應用程序設置在哪里的人來說,它們要么位於 WindowsApps 中,該應用程序被非常鎖定,但您可以通過打開您的應用程序然后使用任務管理器打開文件路徑來到達那里。

但它們更有可能保存在C:\\Users\\[USERNAME]\\AppData\\Local\\Packages\\[NUMBERS][COMPANY].[APPLICATION]_[RANDOMDATA]\\LocalCache\\Local\\[COMPANY]\\[APPLICATION].exe_Url_[RANDOMDATA]\\[VERSION]\\user.config.

在您的項目根文件夾下有一個名為“Properties”的文件夾,該文件夾下有一個 *.settings 文件。 那就是它被存儲的地方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM