【发布时间】:2013-09-26 08:09:54
【问题描述】:
我正在尝试使用此 XDT 部分将 NLog 自定义配置部分插入我的 Web.config:
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" throwExceptions="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xdt:Transform="InsertIfMissing" >
<targets>
<target xsi:type="File" name="logfile" fileName="H:\testLog.txt" layout="${longdate} ${uppercase:${level}} ${message}" />
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="logfile" />
</rules>
</nlog>
当我运行 XDT 转换时,我的 Web.Debug.config 包含:
<nlog throwExceptions="true" xmlns="http://www.nlog-project.org/schemas/NLog.xsd">
<targets>
<target d4p1:type="File" name="logfile" fileName="H:\testLog.txt" layout="${longdate} ${uppercase:${level}} ${message}" xmlns:d4p1="http://www.w3.org/2001/XMLSchema-instance" />
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="logfile" />
</rules>
</nlog>
通常,命名空间前缀是任意的,因此将 xsi 转换为 d4p1 不会导致任何问题。
但是,当我使用d4p1 时,我的应用程序中出现了来自 NLog 的运行时异常。手动将d4p1 的实例更改为xsi 可以解决此问题,但如果用户之后需要手动更改文件,它会颠覆我的配置转换实用程序。
有没有办法使用 XDT 保留命名空间前缀?
【问题讨论】:
-
您找到解决方案了吗?我也有同样的问题。
-
抱歉,还没有。这种 XDT 行为很严重。
标签: visual-studio-2012 nlog xdt-transform