gpt4 book ai didi

xml - 错误列表窗口中没有 Visual Studio 警告或消息的外部 NLog.config

转载 作者:行者123 更新时间:2023-12-04 16:52:11 32 4
gpt4 key购买 nike

我使用 NLog 作为日志记录框架,并尝试找出哪些设置对于外部转换配置文件(例如 NLog.Debug.config)是“最佳的”。

关于 wiki page of the project ,有两种选择:

  1. 内联(例如在 Web.config 或 App.config 中)
  2. 在外部配置文件中使用 简化了 xml <nlog> 作为根元素

这是一个示例配置:

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true">
<targets async="true">
<target name="Warn" xdt:Transform="Remove" xdt:Locator="Match(name)" />
</targets>
<rules>
<logger writeTo="Warn" xdt:Transform="Remove" xdt:Locator="Match(writeTo)" />
</rules>
</nlog>

尽管命名空间很多,但 Visual Studio 2015 会显示以下警告: The 'nlog' element is not declared.

当我将 nlog 部分放在 <configuration> 中时元素,此警告消失,但出现许多“消息”,表明名称、目标、异步等元素未知: Could not find schema information for the element 'target'.

如果我从命名空间定义 (xmlns:nlog="...) 中删除后缀 nlog,那么根元素将被接受,但我会看到针对 target、xdt:Transform、xdt:Locator 等元素的警告上:

The element 'http://www.nlog-project.org/schemas/NLog.xsd:target' is abstract or its type is abstract.
The 'autoreload' attribute is not declared.
The 'name' attribute is not declared.
...

我已经尝试将 namespace 移动到不同的元素或为每个元素或属性提供相应的前缀,但没有任何帮助让所有警告或消息消失...

编辑:属性仍然标有如下警告: The 'http://schemas.microsoft.com/XML-Document-Transform:Locator' attribute is not declared.

最佳答案

最好的方法是下载 NLog.XSD 并将其添加到同一目录。

该文件包含在 NLog.Schema 包中 ( link to Nuget )

编辑:这对我有用,其中 NLog 是 xmlns 而不是 xmlns:nlog

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoreload="true">

关于xml - 错误列表窗口中没有 Visual Studio 警告或消息的外部 NLog.config,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40762448/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com