VS2019构建偶发NLog配置找不到架构信息警告如何解决
问题根本原因
这个偶发的警告是Visual Studio的XML Schema缓存机制异常导致的,和NLog官方XSD、你的配置文件语法没有关系。
VS会自动将XML文件中引用的在线XSD资源下载到本地缓存目录(%LocalAppData%\Microsoft\VisualStudio\<你的VS2019版本号>\Schemas),如果缓存下载失败、文件损坏、或者VS加载Schema时优先级出错,就会触发找不到Schema的警告。你没有修改代码警告自动消失,是VS后台重新完成了XSD缓存的下载和加载。
你提到的XSD中connectionStrings相关的内容属于XSD的注释节点(<xs:annotation>是注释标签),注释内的文本不会触发XSD校验错误,你看到的相关报错是找不到根节点Schema之后的级联提示。
针对性排查&解决方案
因为同一解决方案下其他项目没有这个问题,优先排查当前项目的配置差异:
- 检查当前项目
nlog.config的文件属性:右键文件选择「属性」,确认两个配置:- 「生成操作」设置为内容或者无,不能设置为「编译」
- 「复制到输出目录」设置为如果较新则复制
可以和另一个正常项目的nlog.config属性做对比,调整为一致的配置即可。
- 手动指定NLog Schema:打开
nlog.config后,选择VS菜单栏的「XML」→「架构」,在列表中确认NLog.xsd是否存在且状态为「使用中」。如果不存在,可以到当前项目NLog包的安装目录(一般为packages\NLog.<版本号>\Schemas)找到本地的NLog.xsd,手动添加到Schema列表并勾选使用,即可彻底消除找不到Schema的提示。 - 清除VS缓存:如果还是偶发警告,关闭VS后删除上述缓存目录下的所有文件,重新打开VS加载项目,会自动重新拉取所有需要的XSD资源。
内容的提问来源于stack exchange,提问作者Clayton
相关产品推荐
相关产品推荐

