Visual Studio always selects the wrong xsd for App.config
首先,我有一个具有此配置的.NET 4.0应用程序:
1 2 3 4 5 6 | <?xml version="1.0"?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> </startup> </configuration> |
在转换为Visual Studio 2010/.NET 4.0之后,我遇到了与此问题中相同的问题:app.config"找不到架构信息":编辑器无法识别supportedRuntime元素,从而导致提示。
然后我按照答案:我在app.config编辑器中,然后转到属性窗口。在那里我选择了模式条目。
我删除了dotnetconfig.xsd的选择并选择了dotnetconfig35.xsd,但是vs总是自动地再次添加dotnetconfig.xsd。即使我明确地将其设置为"不要使用此模式",或者甚至从列表中删除该模式,它也会自动再次添加到列表中并被选中。
因为我现在选择了两个模式来定义相同的元素,所以我收到了很多警告。
如何更改架构以使用dotnetconfig35.xsd,而不再自动添加dotnetconfig.xsd?
我将这个问题解释为:文件
1 | <xs:element name="startup" vs:help="configuration/startup" /> |
另一方面,Microsoft将启动设置架构描述为非空元素。因此,我建议将
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <xs:element name="startup" vs:help="configuration/startup"> <xs:complexType> <xs:choice minOccurs="1" maxOccurs="1"> <xs:element name="requiredRuntime" vs:help="configuration/startup/requiredRuntime"> <xs:complexType> <xs:attribute name="version" type="xs:string" use="optional" /> <xs:attribute name="safemode" type="xs:boolean" use="optional" /> </xs:complexType> </xs:element> <xs:element name="supportedRuntime" minOccurs="1" maxOccurs="unbounded" vs:help="configuration/startup/supportedRuntime"> <xs:complexType> <xs:attribute name="version" type="xs:string" use="optional" /> <xs:attribute name="sku" type="xs:string" use="optional" /> </xs:complexType> </xs:element> </xs:choice> <xs:attribute name="useLegacyV2RuntimeActivationPolicy" type="xs:boolean" use="optional" /> <!-- see http://msdn.microsoft.com/en-us/library/bbx34a2h.aspx --> </xs:complexType> </xs:element> |
在修改和重新启动Visual Studio 2010之后,您将不会看到您所描述的警告。当然,我们可以定义更详细的所有属性或元素的模式(特别是如果我们找到更详细的
通过在
因此,所有扩展名为
当我遇到这个问题时,取消检查架构的原因是打开了多个Visual Studio实例。
(我在一个项目中打开了VS2015,在另一个项目中也同时打开了VS2013。)
注意,Visual Studio的多个版本以及在同一个项目/解决方案上来回切换似乎也是重复模式的一些问题首先出现的原因。
这是一篇老文章,但我也遇到了同样的问题。
我采用的方法与KenJohnsrude上面建议的方法相同——创建一个新的.xsd文件:
http://w3stack.org/question/c-how-to-fix-error-could-not-find-schema-information-for-the-attributelement-by-creating-schema/
msvs>打开项目app.config
XML>创建架构
这将在%temp%中创建"app.xsd"
1 | EXAMPLE: c:\users\paulsm\AppData\Local\Temp\app.xsd |
将app.xsd移动到项目目录
app.config,右键单击>属性>模式>…app.xsd>使用>使用此模式=是