C# 无法加载设置文件。它可能已损坏、包含无效XML或包含重复的标识符
我正在尝试打开我的项目设置XMl 为了给它添加一些可配置的对 但我得到了这个错误:C# 无法加载设置文件。它可能已损坏、包含无效XML或包含重复的标识符,c#,xml,asp.net-mvc,visual-studio-2012,C#,Xml,Asp.net Mvc,Visual Studio 2012,我正在尝试打开我的项目设置XMl 为了给它添加一些可配置的对 但我得到了这个错误: Unable to load settings file. It might be corrupted or contain invalid XML or contain duplicate identifiers. 但是,我的XML非常精简: <?xml version='1.0' encoding='utf-8'?> <SettingsFile xmlns="http://schemas
Unable to load settings file. It might be corrupted or contain invalid XML or contain duplicate identifiers.
但是,我的XML非常精简:
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="Conduit.Mam.MaMDBEntityFramework.Properties" GeneratedClassAppName="Settings">
<Profiles />
<Settings>
<Setting AppName="SavedSuccessfullyInDB" Type="System.String" Scope="Application">
<Value Profile="(Default)">The Test saved in DB successfully</Value>
</Setting>
</Settings>
</SettingsFile>
测试已成功保存在DB中
您的XML声明使用单引号。我想应该是双引号。可能值得一试。您的XML声明使用单引号。我想应该是双引号。可能值得一试。设置文件节点的属性应该是“GeneratedClassName”而不是“GeneratedClassAppName”。同样,“设置”节点上的属性“AppName”应该是“Name”
在我的例子中,我认为原因是Resharper过于激进的重构。SettingsFile节点的属性应该是“GeneratedClassName”而不是“GeneratedClassAppName”。同样,“设置”节点上的属性“AppName”应该是“Name”
在我的例子中,我认为原因是Resharper的重构过于激进。我也有这个错误(“无法加载设置文件。它可能已损坏或包含无效的XML或包含重复的标识符”),这也是Resharper重构的结果。经过一点研究,这是我的解决方案:
属性
目录Settings.Settings
和Settings.Designer.cs
属性
目录Settings.Settings
和Settings.Designer.cs
这种方法的妙处在于,Visual Studio将阅读您的app/web.config,并注意到您已经有了条目,并将自动为您添加这些键/值。我的app.config中的这个简单的区分大小写问题导致了我的问题
<setting Name="BlankPrescriberNoWhenWelshFormInGroup" serializeAs="String">
<value>2</value>
</setting>
2.
这需要是“name”而不是“name”
<setting name="BlankPrescriberNoWhenWelshFormInGroup" serializeAs="String">
<value>2</value>
</setting>
2.
不过注意,我以前在为输入大写字母“S”时也遇到过这种情况
<Setting name="value" serializeAs="String">
在我的app.config中,而不是在
<setting name="value" serializeAs="String">
所以区分大小写可以让你在这里小心!还有一个要注意,大写字母为“V”
<Value>2</Value>
2
当它真的只喜欢“v”的时候
<value>2</value>
2
我的app.config中的这个简单的区分大小写问题导致了这个问题
<setting Name="BlankPrescriberNoWhenWelshFormInGroup" serializeAs="String">
<value>2</value>
</setting>
2.
这需要是“name”而不是“name”
<setting name="BlankPrescriberNoWhenWelshFormInGroup" serializeAs="String">
<value>2</value>
</setting>
2.
不过注意,我以前在为输入大写字母“S”时也遇到过这种情况
<Setting name="value" serializeAs="String">
在我的app.config中,而不是在
<setting name="value" serializeAs="String">
所以区分大小写可以让你在这里小心!还有一个要注意,大写字母为“V”
<Value>2</Value>
2
当它真的只喜欢“v”的时候
<value>2</value>
2
您是否有可以发布的异常堆栈跟踪?这是VS-2012编辑器中的一个错误?您是否有可以发布的异常堆栈跟踪?这是VS-2012编辑器中的一个错误。Ori发现并删除了隐藏在AppData中的user.config文件。对我来说,路径是:C:\Users\Matt\AppData\Local\TestApp\TestApp.exe\u Url\u m5ounderdbmxak2b1kdampbaq1fx54wc\1.0.0\user.config。然后我能够重新启动。我确实有一个损坏的文件-一堆空字符。我找到并删除了隐藏在AppData中的user.config文件。对我来说,路径是:C:\Users\Matt\AppData\Local\TestApp\TestApp.exe\u Url\u m5ounderdbmxak2b1kdampbaq1fx54wc\1.0.0\user.config。然后我能够重新启动。我确实有一个损坏的文件-一堆空字符。