无法加载设置文件。它可能已损坏或包含无效的XML或包含重复的标识符

时间:2013-04-17 07:45:46

标签: 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.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>

4 个答案:

答案 0 :(得分:3)

我也遇到了这个错误(“无法加载设置文件。它可能已损坏或包含无效的XML或包含重复的标识符。”)这也是resharper重构的结果。经过一番研究,这是我的解决方案:

  1. 关闭Visual Studio
  2. 导航到项目Properties目录
  3. 删除Settings.settingsSettings.Designer.cs
  4. 启动Visual Studio并打开项目
  5. 添加新设置(属性 - &gt;设置)
  6. 这种方法的美妙之处在于,Visual Studio将读取您的app / web.config,并注意到您已经有条目,并会自动为您添加这些键/值。

答案 1 :(得分:0)

您的XML声明使用单引号。我认为它需要双引号。可能值得一试。

答案 2 :(得分:0)

“SettingsFile”节点的属性应为“GeneratedClassName”而不是“GeneratedClassAppName”。同样,“设置”节点上的属性“AppName”应为“名称”。

就我而言,我认为原因是Resharper过于激进的重构。

答案 3 :(得分:0)

我的app.config中的这个简单区分大小写问题导致了我的问题

  <setting Name="BlankPrescriberNoWhenWelshFormInGroup" serializeAs="String">
    <value>2</value>
  </setting>

这需要是'name'而不是'Name'

  <setting name="BlankPrescriberNoWhenWelshFormInGroup" serializeAs="String">
    <value>2</value>
  </setting>

但是请注意,在我为

输入大写字母'S'之前,我也曾经这样做过
<Setting name="value" serializeAs="String">

在我的app.config中,而不是像

中的小写''
<setting name="value" serializeAs="String"> 

所以区分大小写可以让你在这里注意!另一个需要注意和大写'V'为

<Value>2</Value> 

当它真的只喜欢'v'时

<value>2</value>