我的c#设置有问题......
我在设置中有一个字符串,并将其命名为UserStr
当我调试程序时,我可以毫无问题地更改和使用它:
使用它:
var str=Properties.Setting.Default.Userstr;
改变它:
Properties.Setting.Default.UserStr="SomeTextbox.Text";
Properties.Setting.Default.Save();
它工作正常......
但是当我从调试文件夹运行调试程序时,UserStr
的值是我在第一时间设置的默认值...
我做错了吗?
答案 0 :(得分:1)
我做错了吗?
不,这就是调试器的工作原理。您可能已启用Visual Studio托管过程(默认情况下已启用)。设置管理器使用.exe作为存储设置的目录的键。
这样做的结果是您实际上有两个不同的设置文件。当你独立运行程序时使用的程序,以及在调试程序下运行程序时使用的程序,因为在每种情况下,不同的进程.exe实际上正在运行。
在许多情况下,您可以在没有托管过程的情况下生活。可以在项目设置中的“调试”选项卡下禁用它。取消选中标有“启用Visual Studio托管过程”的复选框。如果你这样做,那么即使在调试过程时,.exe也将是你的实际程序,它将使用与独立使用程序时相同的设置文件。
就个人而言,我会保留原样。我通常不会发现使用两个不同的设置文件是个问题。我通常不会独立运行该程序,直到大部分时间都在进行调试。
有关详细信息,请参阅What is the purpose of vshost.exe file?。
答案 1 :(得分:0)
试试吧:
Properties.Settings.Default.Reload();