我正在用C#编写一个应用程序(类似记事本)。我正在使用Properties.Settings
类来保存用户首选项。它一直工作正常,直到它开始显示此异常消息时,我试图运行它。
Configuration system failed to initialize
我注意到错误源自代码的这一部分:
private void TextPad_Load(object sender, EventArgs e)
{
rtbText.WordWrap = Properties.Settings.Default.WordWrap;
rtbText.Font = Properties.Settings.Default.DefFont;
rtbText.ForeColor = Properties.Settings.Default.ForeColor;
rtbText.BackColor = Properties.Settings.Default.BackColor;
if (Properties.Settings.Default.ShowLast)
{
OpenLocalFile(Properties.Settings.Default.LastFile);
}
// There are other lines which are not relevant to this question
}
我在InitializeComponent();
之后立即将所谓的行移到了表单构造函数中,但我仍然遇到了同样的错误。
实际上编译器在Settings.Designer.cs中告诉错误源于此:
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool WordWrap {
get {
return ((bool)(this["WordWrap"]));
}
set {
this["WordWrap"] = value;
}
如果我从rtbText.WordWrap = Properties.Settings.Default.WordWrap;
移除TextPad_Load
,则会显示
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("Consolas, 9.75pt")]
public global::System.Drawing.Font DefFont {
get {
return ((global::System.Drawing.Font)(this["DefFont"]));
}
set {
this["DefFont"] = value;
}
现在唯一的解决方案是从TextPad_Load
删除这些行(这使得加载用户首选项的想法毫无用处)或启动一个新项目(无论如何我已经完成了)。有人可以解释一下异常消息的含义,也许我可以得到一个解决方案(如果我再次遇到它)? Microsoft VS Help并没有给我任何有形的东西。
由于
答案 0 :(得分:0)
抛弃现有的.config文件可能会有所帮助。
在Properties.Settings中更改后,旧文件可能不再有效(更改的名称或已删除的项目不再被识别)。
请注意,用户范围设置存储在(驱动器):\ Users(usr)\ AppData \ Local \ Microsoft ... something