C# 将字符串保存到properties.settings

C# 将字符串保存到properties.settings,c#,winforms,visual-studio-2008,visual-studio-2010,C#,Winforms,Visual Studio 2008,Visual Studio 2010,我正在使用c#在VS2010中创建一个项目,我有一个字符串值,我正在将其写入项目的Properties.settings中 当我关闭机器并重新启动时,我没有意识到该值似乎没有保存 另一种可能性是,当我把我的代码提交给SVN时,可能vallue没有被编写 有人能帮我确认一下吗 当我将字符串值写入Properties.Settings时,这只是暂时的吗?我最终会不得不将其写入文本文件或其他文件吗 请提供相关信息,我们将不胜感激 谢谢你;) 这些是应用范围还是用户范围?无法在运行时更改应用程序范围设置

我正在使用c#在VS2010中创建一个项目,我有一个字符串值,我正在将其写入项目的Properties.settings中

当我关闭机器并重新启动时,我没有意识到该值似乎没有保存

另一种可能性是,当我把我的代码提交给SVN时,可能vallue没有被编写

有人能帮我确认一下吗

当我将字符串值写入Properties.Settings时,这只是暂时的吗?我最终会不得不将其写入文本文件或其他文件吗

请提供相关信息,我们将不胜感激


谢谢你;)

这些是应用范围还是用户范围?无法在运行时更改应用程序范围设置

是否调用Settings.Save()保存设置

有关更多信息,请参阅本msdn文章:

  • 设置存储在光盘中,尽管路径很难预测,因为.NETFramework管理它。保存用户范围属性的路径示例:
d:\Users\Robo\AppData\Local\DataCrea\workshift.exe\u Url\u 4ssvgihryk04nltgkxam4dh4bdhymcqa\0.9.28.0\user.config

  • 每次执行以下命令后都应保存属性:

    Properties.Settings.Default.Save()

  • 我不确定下面的事情是否会影响您的问题,但添加布尔属性CallUpgrade=True是很好的。然后将以下行添加到主构造函数中:

        //upgrade properties, if version was increased
        if (Settings.Default.CallUpgrade)
        {
            Settings.Default.Upgrade();
            Settings.Default.CallUpgrade = false;
            Settings.Default.Save();
        }
    

。。。升级()将确保从以前版本正确迁移设置。

如果调用
Properties.settings.Default.Save()

下面是我用来记住窗口位置和大小的一些代码:

<Window x:Class="my_namespace.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:my_namespace"
    Closing="save_position"
    Height="{Binding Source={x:Static local:Properties.Settings.Default}, Path=height, Mode=TwoWay}" 
    Width="{Binding Source={x:Static local:Properties.Settings.Default}, Path=width, Mode=TwoWay}" 
    Top="{Binding Source={x:Static local:Properties.Settings.Default}, Path=top, Mode=TwoWay}"
    Left="{Binding Source={x:Static local:Properties.Settings.Default}, Path=left, Mode=TwoWay}">

我正在保存,但即使系统关闭,这些设置是否也已存储?希望确保它们不仅仅是临时的,因为我需要为系统重启存储它们。如果要保存它们,它们肯定是永久的。您应该能够在创建的配置文件中看到结果。应用程序范围设置存储在与.exe共存的文件中。由于要在运行时进行更改和保存,这些必须是用户范围。用户范围设置放置在不同的位置,具体取决于您所使用的Windows版本,但它类似于C:\Documents and settings\username\Local settings\Application Data。即使重新启动VisualStudio,也会显示这些值是如何持久存在的。
private void save_position(object sender, CancelEventArgs e)
{
    Properties.Settings.Default.Save();            
}