Я использую NLog в качестве среды ведения журналов и пытаюсь выяснить, какие параметры являются «оптимальными» для внешнего файла конфигурации transformation (например, NLog.Debug.config).
На вики-странице проекта есть два варианта:
- Встроенный (например, внутри Web.config или App.config)
- Упрощенный 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'.
Если я удалю суффикс nlog из определения пространства имен (xmlns: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.
...
Я уже пытался переместить пространства имен в разные элементы или присвоить каждому элементу или атрибуту соответствующий префикс, но ничего не помогло, чтобы все предупреждения или сообщения исчезли...
РЕДАКТИРОВАТЬ: Атрибуты по-прежнему отмечены предупреждениями, такими как: The 'http://schemas.microsoft.com/XML-Document-Transform:Locator' attribute is not declared.