web.config,configSource和"'xxx'元素未声明为"警告

UpT*_*eek 23 xml asp.net web-config visual-studio

我已经使用configSource属性将可怕的笨拙web.config文件分解为某些部分(例如connectionStrings,身份验证,页面等)的单个文件.

这工作正常,但是包含"snippets"部分的各个xml文件会在VS中引发警告.

例如,名为roleManager.config的文件用于角色管理器部分,如下所示:

<roleManager enabled="false">
</rolemanager>
Run Code Online (Sandbox Code Playgroud)

但是我在VS中的roleManager元素下获得了蓝色波形,并出现以下警告: The 'roleManager' element is not declared

我想这与有效的xml和模式等有关.有没有一种简单的方法来解决这个问题?我可以添加到单个文件的东西?

谢谢

PS我听说像这样打破web.config文件是不好的做法.但是不明白为什么 - 有人可以照亮我吗?

acr*_*omm 28

使用自定义配置文件搜索解决方法,我找到了这个解决方案.不知道是不是正确的.

问题是VS无法找到一个模式来验证你的.config(xml).如果使用"本机"配置元素或创建自定义.config文件,则必须将每个xml文档设置为架构.

默认情况下(例如在VS9中)所有xml文件都使用\ Microsoft Visual Studio 9.0\Xml\Schemas\DotNetConfig.xsd,但您可以添加更多模式以供使用.

在分配模式之前,您必须创建它.

要基于您自己的custom.config创建新的Schema:

  1. 打开自定义配置文件
  2. 在菜单栏XML->创建架构
  3. 保存

要分配您的架构:

  1. 打开自定义配置文件
  2. 在属性面板中:单击浏览按钮[..]
  3. 将"使用"列设置为最近创建的架构

你可以分配你想要的任意数量.或者为所有不同的自定义.config文件提供一个架构

(抱歉,我的英语不太好)

  • 工作良好.BTW,VS2012自动将新创建的模式添加到分配给XML文件的模式列表中. (3认同)

Lan*_*ico 2

我认为您会看到蓝色的曲线,因为您的 web.config 文件的架构没有声明您已“分解”为各个文件的这些自定义配置部分。

在调查这个问题时,我发现我的一些解决方案也有同样的问题,但是微软提供的配置部分没有波浪线。例如:我们已将应用程序设置和连接字符串提取到它们自己的文件中,它们没有得到波形曲线,但我们的自定义文件却得到了波形曲线。

我尝试在 schemas.microsoft.com/.netconfiguration/v2.0 查看 microsoft 架构,但在尝试下载时收到 404 错误消息。

我想说的是,如果您获得 MS 模式的副本并更改它以包含您的外部配置文件,您应该能够摆脱可怕的波形曲线!

HTH,兰斯