我正在使用Nlog,最近决定使用Fody / Costura将DLL嵌入最终的可执行文件中。我注意到,使用下面推荐的实例声明启动和创建Logger时,调用GetCurrentClassLogger时出现异常(请参见下面的异常)。如果我卸载Costura / Fody,则异常消失。 Nlog会消耗该错误,但是每次我启动代码时,它都会因该错误而中断,我想解决它。
//recommended logger declaration
private static Logger logger = LogManager.GetCurrentClassLogger();
//exception thrown when calling the instance declaration
Error Error logging version of assembly NLog, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=5120e14c03d0593c. Exception:
System.ArgumentException: The path is not of a legal form.
at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck,
Int32 maxPathLength, Boolean expandShortPaths)
at System.IO.Path.GetFullPathInternal(String path)
at System.IO.Path.GetFullPath(String path)
at System.Diagnostics.FileVersionInfo.GetFullPathWithAssert(String
fileName)
at System.Diagnostics.FileVersionInfo.GetVersionInfo(String fileName)
at NLog.Common.InternalLogger.LogAssemblyVersion(Assembly assembly)
我已经验证了没有安装Fody / Costura时错误会消失,而在安装Fody / Costura时错误会返回。
我想解决该错误,并且每次运行代码时都不要停止IDE。我也不想忽略特定的异常,以防它发生在与Nlog不相关的其他代码中。引发的异常是System.ArgumentException,它可能在其他代码中发生。
答案 0 :(得分:1)
创建github.com/NLog/NLog/pull/3258 – Rolf Kristensen
因此将在NLog 4.6.1中修复。今天或明天发布(取决于时区;)