簡體   English   中英

使用Properties保存應用程序設置。設置不起作用嗎?

[英]Saving application settings using Properties.Settings doesn't work?

使用以下答案: https : //stackoverflow.com/a/453230/3012708我認為我已經成功實現了C#應用程序中的設置保存。

但是,節省似乎從未發生過-應用程序配置文件從未更新,並且如果我添加了一些要從SettingChangingEventHandler或SettingsSavingEventHandler調用的代碼,則永遠不會調用它。

我添加了上述參考答案中描述的設置。 “用戶”范圍內的4個布爾值,“訪問修飾符”設置保留在“內部”。

在我的代碼中,我打電話:

Using MyApplication.Properties;

然后設置設置“間隔”,我這樣做:

Settings.Default.Interval = true;

並保存:

Settings.Default.Save();

如果我檢查MyApplication.exe.config文件,則會看到該設置,例如:

<userSettings>
    <MyApplication.Properties.Settings>
        <setting name="Interval" serializeAs="String">
            <value>False</value>
        </setting>
    </MyApplication.Properties.Settings>
</userSettings>

但是,它仍然具有其原始值-false。

有任何想法嗎?

我嘗試不使用“正在使用...”代碼,而是使用完整的代碼進行更新:

MyApplication.Properties.Settings.Default.Interval = true;
MyApplication.Properties.Settings.Default.Save();

我還嘗試在Visual Studio外部以Admin身份運行應用程序-祝您好運。

您確定未設置設置嗎? 注意:它們將設置在用戶個人資料下,而不是在解決方案文件夾中。 通常在c:\\Users\\<username>\\AppData\\Local\\<appname> (AppData是隱藏文件夾)。

MyApplication.exe.config是用於部署的文件。 您正確保存了設置,但是exe.config文件包含原始值,因此為什么看不到任何更改。

如果要檢查它是否正確保存,只需寫

if(Properties.Settings.Default.Interval)
{
    throw new Exception("Is True");  
}

從MSDN:

這些應用程序有兩個配置文件:源配置文件(由開發人員在開發過程中進行修改)和輸出文件,該文件隨應用程序一起分發。

在Visual Studio中進行開發時,將應用程序的源配置文件放在項目目錄中,並將其“復制到輸出目錄”屬性設置為“始終復制”或“如果較新則復制”。 配置文件的名稱是擴展名為.config的應用程序的名稱。 例如,一個名為myApp.exe的應用程序應具有一個名為myApp.exe.config的源配置文件。

Visual Studio會自動將源配置文件復制到放置已編譯程序集的目錄中,以創建輸出配置文件,該文件隨應用程序一起部署。 在某些情況下,Visual Studio可能會修改輸出配置文件。 有關更多信息,請參閱重定向程序集版本文章中的在應用程序級別重定向程序集版本。

暫無
暫無

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

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