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


Answers:


38

我有一个与您所指问题类似的问题,我按照这些指示进行,一切都很好。确保EnterpriseLibrary.Configuration.xsd%ProgramFiles%\Microsoft Visual Studio [version]\Xml\Schemas\首先的,那么这样做:

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

启用企业库配置架构

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

链接到文章在这里,希望对您有所帮助


谢谢...但是我再也不能重现这个问题了。重新启动计算机后(很少这样做),警告将被删除,因此我现在无法告知您的解决方案是否有效。但是,既然您提供了解决方案,我还是赞成它。
Michel Keijzers

9
就我而言,对于问题中所述的问题,使用Visual Studio 2013时,计算机上没有EnterpriseLibrary.Configuration.xsd。
Charles Oppermann

7
至少这向正确的方向发送了我-VS 2013模式在VS 2015中加载。将它们设置为Auto,错误消失了。
彼得·拉康伯(Peter T. LaComb Jr.)2016年

6
同样在这里@PeterLaCombJr。我将所有“使用”重置为“自动”,错误消失了,VS 2017开始再次正确验证我的app.config并给了我IntelliSense。
ahwm

最终对我来说永久有效的方法如下所述删除.suo
George Birbilis

185

重新启动对我而言不起作用,因此我想分享有效的方法。

首先,我刚升级到Windows8。此后未发生此问题。而且此问题仅发生在我的一个app.config文件中。因此,我决定将有问题的app.config与一个好文件进行比较。在Visual Studio中,打开app.config,然后转到Xml -> Schemas。我注意到,好的配置仅检查了其中三个架构。不好的一个检查了相同的三个,外加一个DotNetConfig.xsd。在将Use列更改为自动之后,对于DotNetConfig.xsd,问题就消失了。

在此处输入图片说明

在此处输入图片说明


6
对我来说是DotNetConfig.xsd。我不知道这是否是因为更改了.net构建版本,因为我也注意到了DotNetConfig45。
亚当

6
如果在选择其他行之前单击“确定”,它将无法识别更改。
AaronLS 2014年

2
解决了问题。谢谢
Vetras

5
这没有帮助我。无论我做了什么,“不要使用”,“自动”或“删除”,都同时选择了DotNetConfig40.xsd和DotNetConfig.xsd。我尝试确保选择后选择了另一行。最后,我不得不将DotNetConfig.xsd重命名为“ DotNetConfig DO USE.xsd”以防止其加载。
Charles Oppermann

1
我打开app.config注意到该消息。接下来转到XML >>模式>>我注意到DotNetConfig.xsd和DotNetConfig45.xsd。我将DotNetConfig.xsd的[使用]更改为“自动”。重新启动了Visual Studio 2017,现在解决了。
juF18年

33

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


4
您将在app.config文件的属性窗口中找到架构。单击“模式”椭圆按钮,然后从下拉列表中将每个对勾替换为“自动”。
RobCroll 2015年

我尝试单独删除有问题的模式,但是它一直在返回。只有当我将所有模式设置为自动时,我想离开的模式才真正离开。
Daniel Gimenez

16

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

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


3
我在VS 2017 RC中遇到了类似的问题,这也起作用,谢谢
TrtlBoy 16'Nov 30'6

4
它有帮助。在我的情况下,该文件位于{}解决方案/ VS /(项目)/v14/.suo。
燕F.

2
这也适用于VS 2017的实际发行版!
任意

谢谢,这可以永久修复它(将.xsd文件重命名为_.xsd也可以)。顺便说一句,.suo的删除最终以DotNetConfig.xsd结束,并从列表中删除了DotNetConfig45.xsd(已将MVC5应用程序[从最近从MVC4转换为4.5转换为4.7.2)以及一些控制台应用程序和库在问题出现之前)
George Birbilis

顺便说一句,正如我在zoomicon.wordpress.com/2019/04/04/上所提到的我刚刚找到了一个没有文件名部分的“ .suo”文件,只是文件扩展名被删除了
George Birbilis

12

随着如问题描述,并使用Visual Studio 2013(更新4)症状,我可能会在看到XML模式[原文]对话框,都DotNetConfig.xsdDotNetConfig40.xsd选择使用的情况。

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

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

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

DotNetConfig.xsd 在里面 1033子文件夹中,并且似乎是较新的,更完整的版本。

无论我在XML模式中选择了什么设置,都无法取消选择或删除DotNetConfig40DotNetConfig。我尝试了“删除”,然后将“使用”参数从“使用此架构”更改为“自动”,然后将“请勿使用此架构”。

无论选择什么,对于这两个文件,当我返回对话框时,都将选择两个文件使用。我还尝试了在不按“确定”之前移到另一行的技巧。

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

我对执行此操作感到不满意,并担心它是否会对其他项目产生不良影响。我将用我的结果更新此帖子。


1
我在使用GUI时也没有成功,我在1033 \子文件夹中重命名了通用的DotNetConfig.xsd,这立即解决了我的问题。
布鲁尼斯

1
谢谢,那行得通,但是删除.suo似乎是最好的解决方案。这将DotNetConfig.xsd保留在架构列表中(删除了我从4.5转换为4.7.2之后也存在的DotNetConfig45.xsd)
George Birbilis

6

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


5

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

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

在此处输入图片说明


3
这似乎并不永久有效(对我而言仅工作了一段时间)。删除.suo文件,然后重新打开
George Birbilis

4

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

因此,似乎重新启动(并且可能进行了一些隐式还原/重置已删除了警告)。


4

对我来说,我注意到我有很多XML Schemas重复的东西,我只是简单地标记为Don't Use与Visual Studio 2017不相关的所有东西。问题立即消失了。


3

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

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

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


2

死灵法师:使用Visual Studio 2017更新2019

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

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

所有这些都不起作用。

但是, 这里描述的OLEG解决方案有效。

我所要做的就是用以下代码替换所有使用过的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之后,错误消失了。


谢谢,我解决了这个问题,但对其他人来说,找到解决方案是一件好事;赞成。
Michel Keijzers

2
只需删除.suo文件
George Birbilis
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.