【问题标题】:Fix: The Global element 'configuration' has already been declared修复:全局元素“配置”已被声明
【发布时间】:2012-08-02 18:04:39
【问题描述】:

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

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

全局元素“配置”已在 app.xsd 中声明

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

【问题讨论】:

    标签: c# xsd stylesheet app-config


    【解决方案1】:

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

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

    【讨论】:

    • 对我来说是 DotNetConfig.xsd。我想知道是不是因为更改了 .net 构建版本,因为我也注意到了 DotNetConfig45。
    • 如果您在选择其他行之前单击“确定”,它不会识别更改。
    • 解决了这个问题。谢谢
    • 这对我没有帮助。无论我做什么,“不使用”、“自动”或删除,DotNetConfig40.xsd 和 DotNetConfig.xsd 都被选中。我尝试确保在做出选择后选择了另一行。我最后不得不将 DotNetConfig.xsd 重命名为“DotNetConfig DO NOT USE.xsd”以防止它加载。
    • 我打开 app.config 发现了这条消息。接下来转到 XML >> Schemas >> 我注意到 DotNetConfig.xsd 和 DotNetConfig45.xsd。我将 DotNetConfig.xsd 的 [Use] 更改为 Automatic。重新启动了visual studio 2017,现在已经解决了。
    【解决方案2】:

    我遇到了与您所指的问题类似的问题,我按照这些说明进行操作,一切都很好。首先确保EnterpriseLibrary.Configuration.xsd%ProgramFiles%\Microsoft Visual Studio [version]\Xml\Schemas\ 中,然后执行以下操作:

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

    启用企业库配置架构

    1. 在解决方案资源管理器中双击 Visual Studio 中的配置文件。
    1. 在 XML 菜单上,单击 Schemas... 打开 XML Schemas 对话框。
    1. 找到名为 EnterpriseLibrary.Configuration.xsd 的架构。这是自动安装的。但是,如果它未显示在列表中,请单击添加并导航到文件夹 %Program Files%\Microsoft Visual Studio [version] \Xml\Schemas,然后选择 EnterpriseLibrary.Configuration.xsd 并单击打开。
    1. 将使用列中的值更改为使用此架构。然后点击确定。

    文章链接是here,希望对你有帮助

    【讨论】:

    • 谢谢...但是我不能再重现这个问题了。当我重新启动计算机(我很少这样做)时,警告被删除,所以我现在无法判断您的解决方案是否有效。但既然你给出了一个解决方案,我还是投了赞成票。
    • 在我的情况下,问题中描述的问题,使用 Visual Studio 2013,机器上没有 EnterpriseLibrary.Configuration.xsd。
    • 这至少让我朝着正确的方向前进 - VS 2013 模式正在 VS 2015 中加载。将它们设置为自动,错误就消失了。
    • 这里相同@PeterLaCombJr。我将所有“使用”重置为“自动”,错误消失了,VS 2017 开始再次正确验证我的 app.config 并给了我 IntelliSense。
    • 什么最终对我有用 什么删除 .suo 如下所述
    【解决方案3】:

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

    【讨论】:

    • 您将在 app.config 文件的属性窗口中找到架构。单击 Schemas 椭圆按钮,然后从下拉列表中将每个刻度替换为 Automatic。
    • 我尝试单独删除有问题的架构,但它不断出现。只有当我将 所有 架构设置为自动时,我想要离开的架构才真正离开。
    【解决方案4】:

    我也为此苦苦挣扎了一段时间。原来,我的问题版本源于 Visual Studio 创建的隐藏 {PROJECTNAME}.SUO 文件。

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

    【讨论】:

    • 我在 VS 2017 RC 上遇到了类似的问题,这也有效,谢谢
    • 它有帮助。就我而言,该文件位于 {solution}/.vs/{project}/v14/.suo
    • 这在 VS 2017 的实际版本中也有效!
    • 谢谢,这永久修复了它(将 .xsd 文件重命名为 _.xsd 也有效)。顺便说一句,删除 .suo 以 DotNetConfig.xsd 结束,并从列表中删除了 DotNetConfig45.xsd(已从 4.5 转换为 4.7.2 一个 MVC5 应用程序 [最近从 MVC4 转换] 以及一些控制台应用程序和库在问题出现之前)
    • 顺便说一句,正如我在zoomicon.wordpress.com/2019/04/04/… 中提到的,我刚刚发现了一个没有文件名部分的“.suo”文件,只是有文件扩展名并删除了它
    【解决方案5】:

    根据问题中描述的症状,并使用 Visual Studio 2013(更新 4),我可以在 XML Schemas [原文如此] 对话框中看到 DotNetConfig.xsdDotNetConfig40.xsd 都是选择使用。

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

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

    这些架构文件包含在%programfiles(x86)%\Microsoft Visual Studio 12.0\xml\Schemas\ 文件夹中。

    DotNetConfig.xsd 位于 1033 子文件夹中,似乎是更新、更完整的版本。

    无论我在 XML Schemas 中选择了什么设置,我都无法取消选择或删除 DotNetConfig40DotNetConfig。我尝试了“Remove”,并将 Use 参数从“Use this schema”更改为“Automatic”,然后是“Do not使用此架构”。

    无论选择什么,对于任何一个文件,当我返回对话框时,都将被选中使用。我还尝试了在按“OK”之前移动到另一行的技巧,但无济于事。

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

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

    【讨论】:

    • 我也未能成功使用 GUI,我在 1033\ 子文件夹中重命名了通用 DotNetConfig.xsd 并立即解决了我的问题。
    • 谢谢,这行得通,但是删除 .suo 似乎是最好的解决方案。这将 DotNetConfig.xsd 保留在模式列表中(删除了在我从 4.5 转换到 4.7.2 后也存在的 DotNetConfig45.xsd)
    【解决方案6】:

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

    【讨论】:

      【解决方案7】:

      我注意到我的 VS2017 存在这个问题。

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

      【讨论】:

      • 这似乎不能永久工作(对我来说只工作过一次)。删除 .suo 文件并重新打开
      【解决方案8】:

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

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

      【讨论】:

        【解决方案9】:

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

        【讨论】:

          【解决方案10】:

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

          全局元素“配置”已被声明。

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

          【讨论】:

            【解决方案11】:

            Necromancing:使用 Visual Studio 2017 更新 2019

            我尝试按照别人的建议去做:

            • 我尝试重新启动系统:没有成功。
            • 打开 App.Config
            • 菜单:XML - 架构...
            • 看到有几个DotNetConfigXX.csd(XX可以是emoty,也可以是数字)
            • 我尝试将它们设置为自动,或“不使用此架构”
            • 我试图删除重复的架构

            这一切都不起作用。

            但是,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 后,错误消失了。

            【讨论】:

            • 谢谢,这个问题我通过了,不过好在别人看到有解决办法;赞成。
            • 只删除.suo文件
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-04-19
            • 2012-09-13
            • 1970-01-01
            相关资源
            最近更新 更多