如何解决错误:通过创build模式,找不到属性/元素的模式信息

我有一个用C#编写的VS2010中的窗体应用程序,并在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> 

更新2015年9月
这个答案继续得到upvotes,所以我要离开它在这里,因为它似乎是有帮助的一些人,但请先看看@reexmonkey和@Pressacco的其他答案。 他们可能提供更好的结果。

原来的答案
给这个镜头:

  1. 在Visual Studio中,打开您的app.config或web.config文件。
  2. 转到“XML”菜单并select“创build模式”。 此操作应该创build一个名为“app.xsd”或“web.xsd”的新文件。
  3. 将该文件保存到您的磁盘。
  4. 回到你的app.config或web.config,并在编辑窗口中 ,右键单击并select属性。 从那里,确保您刚刚生成的xsd在Schemas属性中被引用。 如果不存在,则添加它。

这应该导致这些消息消失。

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

“C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ xml \ Schemas \ DotNetConfig.xsd”“Web.xsd”

最快,最简单的最懒惰的方式来解决问题:

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

一个XSD包含在EntLib 5中,并安装在Visual Studio架构目录中。 就我而言,可以在下面find:

 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文档编辑器,select“属性”
  3. 将完全限定的path添加到“EnterpriseLibrary.Configuration.xsd”

在旁边

值得重复的是,这些“错误列表”“消息”(“无法find该元素的架构信息”)只有在打开app.config文件时才可见。 如果你“closures所有文件”并编译…没有消息将被报告。

我发现在相关模块中有一个语法错误,而且没有编译 – 编译器并没有告诉我。 刚给了我关于app.config的东西的错误。 VS2010。 一旦我解决了语法错误,一切都很好。

简单:在Visual Studio报表devise器中1.在devise模式下打开报表并从RDLC文件中删除数据集2.打开解决scheme资源pipe理器并删除实际(损坏的)XSD文件3.将数据集添加回RDLC文件。 4.上述过程将创build新的XSD文件。 5.更详细的内容如下。

在Visual Studio中,在devise模式下打开RDLC文件报告。 点击报告,然后select查看,然后从顶部的行菜单中报告数据。 select数据集,然后右键单击并从报告中删除数据集。 下一步打开解决scheme资源pipe理器,如果它尚未在您的Visual Studio中打开。 findXSD文件(它应该与刚刚从报告中删除的数据集名称相同)。 现在返回并再次右键单击报告数据数据集,然后select添加数据集。 这将创build一个新的XSD文件,并将数据集属性写入报表。 现在,您的错误消息将消失,任何缺less的数据现在将出现在您的报告中。

当这发生在我身上(不知从哪里来),我正要深入上面的顶部答案,然后我想我会closures项目,closuresVisual Studio,然后重新打开所有的东西。 问题解决了。 VS错误?

我在VS 2012中已经在项目中更改了“部分名称”,并且通过删除项目中的“app.config”来修复它,然后在“解决scheme资源pipe理器”中右键单击项目,select“属性“,然后”设置“,然后更改其中一个设置,保存并重新构build。 这用正确的信息创build了一个新的app.config。

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

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

  1. 打开你的app.configweb.config文件。
  2. 转到XML菜单并selectCreate Schema

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

  1. 将新生成的xsd文件保存到项目的根目录下。
    • 打开你的App.configweb.config文件,在文本编辑器中右键单击并select属性,然后单击模式值旁边的...button。
    • 使用“ Addbutton添加新生成的xsd文件。
    • 点击OK

无法find属性/元素错误的模式信息现在应该被parsing。

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

我收到了<specFlow>元素的这个消息,因此我在这个答案中添加了一个specflow.xsd文件给解决scheme(通过一些修改来允许<plugins>元素)。

此后,我(例如Pressacco),在app.config的文件缓冲区中右键单击并select属性,在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" 

它为我工作。

右键单击解决scheme资源pipe理器中的项目图标,然后select“属性”。

转到“应用程序”选项卡并select早期的.NET目标框架。

保存更改。

转到“应用程序”选项卡并select最初的.NET目标框架。

保存更改=>问题解决!