NLog-System.MethodAccessException仅在VMWare Horizo​​n View客户端中

时间:2019-02-06 07:30:57

标签: c# vmware nlog

我更新了C#WPF应用程序,以使用最新版本的NLog和NLog.Extensions.Logging。

除了在此VMWare Horizo​​ns客户端中因该错误而崩溃的地方外,它均可在所有地方使用

    $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();

        }
    }
}

1 个答案:

答案 0 :(得分:1)

您的部署有问题。您的应用程序未使用NLog ver。 4.5(但有些旧版本)。

LogFactory属性通过以下方式公开:https://github.com/NLog/NLog/pull/2316

也许您已在Windows GAC中注册了旧的NLog? (全局程序集缓存)

也许尝试使用Console.WriteLine编写typeof(NLog.LogFactory).Assembly位置。