修复:已声明全局元素“配置”

时间:2012-08-05 13:41:59

标签: c# xsd stylesheet app-config

我使用了第二个解决方案 How to resolve "Could not find schema information for the element/attribute <xxx>"?

即。使用按钮创建了一个XSD来创建一个方案。我将app.config中的样式表更改为app.xsd,但现在我收到了警告:

全局元素'配置'已在app.xsd

中声明

即使更改名称,也会显示警告。 有人有解决方案吗?

11 个答案:

答案 0 :(得分:167)

重新启动对我不起作用,所以我想分享一些有效的方法。

首先,我刚刚升级到Windows 8.此问题在此之前未发生过。这个问题只发生在我的app.config文件的一个中。所以我决定将有问题的app.config与一个好的app.config进行比较。在Visual Studio中,打开app.config后,我转到了Xml -> Schemas。我注意到好的配置只检查了其中三个模式。坏的一个检查了相同的三个,加上一个DotNetConfig.xsd。在我将Use列更改为自动后,对于DotNetConfig.xsd,问题就消失了。

enter image description here

enter image description here

答案 1 :(得分:35)

我对你提到的问题有类似的问题,我遵循了这些指示,一切都很好。首先确保EnterpriseLibrary.Configuration.xsd位于%Program Files%\Microsoft Visual Studio [version] \Xml\Schemas\,然后执行此操作:

  

Enterprise Library在Visual Studio中安装架构,该架构提供IntelliSense®,用于在Visual Studio XML编辑器中编辑Enterprise Library配置文件。您必须先打开架构才能使用它。

     

启用企业库配置架构

     
      
  1. 在解决方案资源管理器中双击Visual Studio中的配置文件。

  2.   
  3. 在XML菜单上,单击Schemas ...以打开XML Schemas对话框。

  4.   
  5. 找到名为EnterpriseLibrary.Configuration.xsd的架构。这是自动安装的。但是,如果未在列表中显示,请单击“添加”并导航到文件夹%Program Files%\ Microsoft Visual Studio [version] \ Xml \ Schemas \,然后选择EnterpriseLibrary.Configuration.xsd并单击“打开”。

  6.   
  7. 将“使用”列中的值更改为“使用此架构”。然后单击“确定”。

  8.   

该文章的链接是here,希望这会有所帮助

答案 2 :(得分:31)

我的问题是我从.Net 4.5转到.Net 4.0。为了解决这个问题,我将所有勾选的模式切换为自动模式。

答案 3 :(得分:12)

根据问题中描述的症状,并使用Visual Studio 2013(Update 4),我可以在 XML Schemas [sic]对话框中看到DotNetConfig.xsd和{{ 1}}被选中使用。

我正在使用.NET Framework 4.0项目。

两个XSD文件相互冲突,每个文件定义相同的元素,导致发出警告。

这些架构文件包含在DotNetConfig40.xsd文件夹中。

%programfiles(x86)%\Microsoft Visual Studio 12.0\xml\Schemas\位于DotNetConfig.xsd子文件夹中,似乎是更新,更完整的版本。

无论我在XML Schema中选择了什么设置,我都无法取消选择,或删除 DotNetConfig40 DotNetConfig 。我尝试了“删除”,并将使用参数从“使用此架构”更改为“自动”,然后“不要使用此架构“。

无论选择什么,对于任一文件,当我返回到对话框时,两者都将被选中使用。在尝试“确定”之前,我也尝试了移动到另一行的诀窍。

最后,我将1033文件重命名为DotNetConfig40.xsd以防止它被加载。这立即解决了这个问题。

我不满意必须这样做,并担心它是否会对其他项目产生不良副作用。我会用我的结果更新这篇文章。

答案 4 :(得分:12)

我也挣扎了一段时间。事实证明,我的问题版本源自Visual Studio创建的隐藏{PROJECTNAME}.SUO文件。

我的猜测是,VS会在此文件中缓存XSD架构关联。更改目标框架后弹出警告,删除SUO文件并重新启动VS后,它们消失了。

答案 5 :(得分:6)

我在编辑器中关闭导致这些警告并重新编译的文件后,此问题得到解决。

答案 6 :(得分:4)

重新启动系统后,问题就解决了,这意味着我不再收到任何与该计划相关的警告。

所以似乎重新启动(可能还有一些隐式恢复/重置删除了警告)。

答案 7 :(得分:3)

对我来说,我注意到我有一堆XML Schemas被复制,我只是简单地标记为Don't Use所有与Visual Studio 2017无关的问题。问题立即消失

答案 8 :(得分:3)

我在VS2017中注意到了这个问题。

更改DotNetConfig.xsd以使用“自动”解决了该问题。

enter image description here

答案 9 :(得分:2)

使用Visual Studio 2015社区版 - 在我的项目的根文件夹中生成web.xsd并将其添加到架构列表中清除除了其中一个警告之外的所有内容,

  

全球元素&#39;配置&#39;已经宣布&#39;。

在文本编辑器中关闭web.config文件并重建项目会清除此警告。

答案 10 :(得分:1)

更新:使用Visual Studio 2017更新2019

我试图做别人建议的事情:

  • 我尝试重新启动系统:无效。
  • 打开App.Config
  • 菜单:XML-模式...
  • 看到有多个DotNetConfigXX.csd(XX表示情感或数字)
  • 我尝试将它们设置为自动,或“不使用此架构”
  • 我试图删除重复的架构

所有这些均无效。

但是,OLEG的解决方案 as described here有效。

我要做的就是用以下代码替换所有使用过的DotNetConfigXX.xsd文件(XX为空或数字)中的以下部分

 <xs:element name="startup" vs:help="configuration/startup" 
 ...
 </xs:element>

替换为:

<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>

别忘了备份原始的.XSD文件!

Visual Studio重新启动后,错误消失了。