我更新了C#WPF应用程序,以使用最新版本的NLog和NLog.Extensions.Logging。
除了在此VMWare Horizons客户端中因该错误而崩溃的地方外,它均可在所有地方使用
$exception {"Attempt by method 'NLog.Extensions.Logging.NLogLoggerProvider..ctor(NLog.Extensions.Logging.NLogProviderOptions, NLog.LogFactory)' to access method 'NLog.LogManager.get_LogFactory()' failed."} System.MethodAccessException
该项目当前正在使用NLog v4.5.11和 NLog.Extensions.Logging v1.4
我的应用程序的先前版本,该版本使用NLog v.4.4.12和 NLog.Extensions.Logging v1.0在此VM中工作,因此我试图退回到那个位置。然后,我将逐步提高这些库的版本。
很快就会有更多的关注...与此同时,非常欢迎对可能导致此问题的任何见解。
using Microsoft.Extensions.Logging;
using NLog.Extensions.Logging;
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
var loggerFactory = new LoggerFactory();
var Logger = loggerFactory.CreateLogger<Program>();
loggerFactory.AddNLog();
Logger.LogDebug($"============{Environment.NewLine}");
Console.ReadLine();
}
}
}
答案 0 :(得分:1)
您的部署有问题。您的应用程序未使用NLog ver。 4.5(但有些旧版本)。
LogFactory属性通过以下方式公开:https://github.com/NLog/NLog/pull/2316
也许您已在Windows GAC中注册了旧的NLog? (全局程序集缓存)
也许尝试使用Console.WriteLine编写typeof(NLog.LogFactory).Assembly
位置。