如何修复错误:“无法通过创建架构找到属性/元素的架构信息”

时间:2011-03-14 19:32:42

标签: c# error-handling database-schema application-settings

我有一个使用C#在VS2010中编写的Windows窗体应用程序,并在app.config文件中出现以下错误:

Message 4   Could not find schema information for the attribute 'name'
Message 8   Could not find schema information for the attribute 'name'
Message 12  Could not find schema information for the attribute 'name'
Message 5   Could not find schema information for the attribute 'serializeAs'
Message 15  Could not find schema information for the element 'CCP_Utility.Settings1'
Message 2   Could not find schema information for the element 'CCP_Utility.Properties.Settings'
Message 3   Could not find schema information for the element 'setting'
Message 1   Could not find schema information for the element 'userSettings'
Message 6   Could not find schema information for the element 'value'

我需要更改代码才能解决此问题?我在哪里可以编辑CCP_Utility.Settings1CCP_Utility.Properties.Settings中的内容?

以下是app.config代码:

<configuration>
<configSections>
    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
        <section name="CCP_Utility.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        <section name="CCP_Utility.Settings1" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
    </sectionGroup>
  </configSections>
<userSettings>
  <CCP_Utility.Properties.Settings>
    <setting name="SourceDir" serializeAs="String">
      <value />
    </setting>
    <setting name="TargetDir" serializeAs="String">
      <value />
    </setting>
    <setting name="CorpID" serializeAs="String">
      <value />
    </setting>
  </CCP_Utility.Properties.Settings>
    <CCP_Utility.Settings1>
        <setting name="sourceDir" serializeAs="String">
            <value />
        </setting>
        <setting name="targetDir" serializeAs="String">
            <value />
        </setting>
    </CCP_Utility.Settings1>

   </userSettings>
</configuration>

10 个答案:

答案 0 :(得分:206)

解决问题的最快,最简单的方法:

  1. 右键单击解决方案资源管理器中的项目图标,然后选择“属性”。
  2. 转到“应用程序”选项卡,然后选择早期的.NET目标框架。
  3. 保存更改。
  4. 转到“应用程序”选项卡,然后选择最初的.NET目标框架。
  5. 保存更改=&gt;问题解决了!

答案 1 :(得分:161)

2015年9月更新
这个答案继续得到提升,所以我会留在这里,因为它似乎对某些人有帮助,但请先查看@reexmonkey@Pressacco的其他答案。它们可能会提供更好的结果。

原始回答
试一试:

  1. 在Visual Studio中,打开app.config或web.config文件。
  2. 转到“XML”菜单并选择“创建架构”。此操作应创建一个名为“app.xsd”或“web.xsd”的新文件。
  3. 将该文件保存到您的磁盘。
  4. 返回app.config或web.config并在编辑窗口中,右键单击并选择属性。从那里,确保在Schemas属性中引用刚刚生成的xsd。如果它不存在则添加它。
  5. 这会导致这些消息消失。

    我将web.xsd保存在我的web文件夹的根目录中(可能不是最适合它的地方,但仅用于演示目的),我的Schemas属性如下所示:

      

    “C:\ Program Files(x86)\ Microsoft   视觉工作室   10.0 \ xml \ Schemas \ DotNetConfig.xsd“”Web.xsd“

答案 2 :(得分:21)

XL包含在EntLib 5中,并安装在Visual Studio架构目录中。就我而言,可以在以下网址找到:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Xml\Schemas\EnterpriseLibrary.Configuration.xsd

CONTEXT

  • Visual Studio 2010
  • 企业图书馆5

取消警告的步骤

  1. 在Visual Studio项目中打开app.config
  2. 右键单击XML Document编辑器,选择“Properties”
  3. 将完全限定的路径添加到“EnterpriseLibrary.Configuration.xsd”
  4. ASIDE

    值得重复的是,这些“错误列表”“消息”(“无法找到元素的架构信息”)仅在您打开app.config文件时可见。如果您“关闭所有文档”并编译......将不会报告任何消息。

答案 3 :(得分:1)

我发现相关模块中存在语法错误并且没有编译 - 编译器没有告诉我这一点。刚给了我关于app.config东西的错误。 VS2010。一旦我修复了语法错误,一切都很好。

答案 4 :(得分:1)

简单:在Visual Studio报表设计器中 1.在设计模式下打开报告,并从RDLC文件中删除数据集 2.打开解决方案资源管理器并删除实际(损坏的)XSD文件
3.将数据集添加回RDLC文件 4.上述步骤将创建新的XSD文件 5.更详细的内容如下。

在Visual Studio中,在设计模式下打开RDLC文件报告。单击报告,然后选择查看,然后从顶行菜单中选择报告数据。选择数据集,然后右键单击并从报告中删除数据集。下一步打开解决方案资源管理器,如果它尚未在Visual Studio中打开。找到XSD文件(它应该与您刚刚从报告中删除的数据集相同)。现在返回并再次右键单击报表数据数据集,然后选择“添加数据集”。这将创建一个新的XSD文件,并将数据集属性写入报告。现在,您的错误消息将消失,现在任何缺失的数据都会显示在您的报告中。

答案 5 :(得分:0)

当这件事发生在我身上时(突然冒出来)我正要深入到上面的最佳答案,然后我想我关闭项目,关闭Visual Studio,然后重新打开所有内容。问题解决了。 VS bug?

答案 6 :(得分:0)

我在VS 2012中已经在项目中更改了“部分名称”,我通过删除项目中的“app.config”来修复它,然后右键单击“解决方案资源管理器”中的项目,选择“属性”,然后选择“设置”,然后更改其中一个设置,保存和重新构建。这创建了一个带有正确信息的新app.config。

答案 7 :(得分:0)

当您的项目引用过期模式时会发生此错误。使用Visual Studio生成新的。

在Visual Studio中,执行以下操作:

  1. 打开您的app.configweb.config文件。
  2. 转到XML菜单,然后选择Create Schema
  3.   

    这将触发app#.xsd(Windows应用)或web#.xsd(网站)文件生成。

    1. 将新生成的xsd文件保存到项目的根目录。
      • 打开App.configweb.config文件,右键单击文本编辑器并选择属性,然后单击Schemas值旁边的...按钮。
      • 使用Add按钮添加新生成的xsd文件。
      • 点击OK
    2. 现在应解决无法找到属性/元素的架构信息错误。

答案 8 :(得分:0)

就我而言,我的代码中有一个含糊不清的引用。我重新启动Visual Studio,并能够看到错误消息。当我解决了这个问题时,另一个错误就消失了。

答案 9 :(得分:-1)

我写的大部分内容已经被Pressacco所涵盖,但这是针对SpecFlow的。

我收到了<specFlow>元素的此消息,因此我在解决方案this answer中添加了specflow.xsd文件(进行了一些修改以允许<plugins>元素) 。

此后我(如Pr​​essacco)右键单击app.config的文件缓冲区和所选属性,在Schemas内,我添加了"specflow.xsd"到最后。 Schemas的全部内容现在为:

"C:\Program Files (x86)\Microsoft Visual Studio 12.0\xml\Schemas\1033\DotNetConfig.xsd" "C:\Program Files (x86)\Microsoft Visual Studio 12.0\xml\Schemas\EntityFrameworkConfig_6_1_0.xsd" "C:\Program Files (x86)\Microsoft Visual Studio 12.0\xml\Schemas\RazorCustomSchema.xsd" "specflow.xsd"