gpt4 book ai didi

c# - Serilog 文件接收器 - System.MissingMethodException : Method not found: Serilog. LoggerConfiguration

转载 作者:行者123 更新时间:2023-12-04 08:44:17 30 4
gpt4 key购买 nike

当我尝试使用文件接收器时遇到 MissingMethodException。

            Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.File(logFilePath, rollingInterval: RollingInterval.Day, shared: true)
.CreateLogger();

这真的很奇怪,因为我以前用相同的设置使用过它,但它从来没有出现过任何问题,但我确定这是导致错误的原因,因为如果我去掉 .WriteTo.File() 行我没有收到错误消息。

这是我的 packages.config:

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="ModPlus.Revit.API.2020" version="1.0.0" targetFramework="net472" />
<package id="Serilog" version="2.9.0" targetFramework="net472" />
<package id="Serilog.Sinks.File" version="4.1.0" targetFramework="net472" />
</packages>

你能想出发生这种情况的原因吗?
我见过类似的问题,这通常是由于程序集文件中的版本不匹配,但我检查并引用了正确的版本(至少就我在 packages.config 中看到的而言)

编辑:这是完整的未处理异常 UnhandledException

编辑 2:调用 Serilog 的代码是 Revit(3D 建模软件)的一个插件,我只是尝试在 2 个不同版本的平台上运行这个插件:

  • Revit 2020,我遇到了未处理的异常
  • Revit 2019,运行良好!(我需要插件在两个版本上都能工作)

两个版本的软件都使用相同版本的 .NET Framework,4.7.2
这是否提供了更多线索?一个版本可能出了什么问题,而另一个版本却没有?

最佳答案

此错误表明您以某种方式在输出文件夹中获取了旧版本的 Serilog.Sinks.File.dll,这不是您通过 NuGet 安装的版本。

打开您的 .csproj 文件并检查对 Serilog.Sinks.File.dll 的任何引用并确保您只有一个引用,并且它指向正确的nuget 包文件夹 (4.1.0)。

它应该看起来像:

  <ItemGroup>
<Reference Include="Serilog, Version=2.0.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10, processorArchitecture=MSIL">
<HintPath>..\packages\Serilog.2.9.0\lib\net46\Serilog.dll</HintPath>
</Reference>
<Reference Include="Serilog.Sinks.File, Version=2.0.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10, processorArchitecture=MSIL">
<HintPath>..\packages\Serilog.Sinks.File.4.1.0\lib\net45\Serilog.Sinks.File.dll</HintPath>
</Reference>
</ItemGroup>

你也可以使用类似 dotPeek 的东西检查输出文件夹中的程序集并确认您是否拥有正确的程序集。


此外,虽然我认为它与这个特定错误无关,但请确保您在项目属性中启用了自动生成绑定(bind)重定向,以便 Serilog.Sinks.File 的引用到 Serilog 2.5.0 被重定向到 Serilog 2.9.0。

binding redirects

关于c# - Serilog 文件接收器 - System.MissingMethodException : Method not found: Serilog. LoggerConfiguration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64407554/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com