无法加载文件或程序集 'NLog.Web.AspNetCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c'

Could not load file or assembly 'NLog.Web.AspNetCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c'

我正在将我的解决方案从 .NET 5 升级到 .NET 6 并在运行时遇到错误

Unhandled exception. System.IO.FileNotFoundException: Could not load file or assembly 'NLog.Web.AspNetCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c'. The system cannot find the file specified. File name: 'NLog.Web.AspNetCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c' at MyApp.Program.CreateHostBuilder(String[] args) at MyApp.Program.Main(String[] args) in ..\MyApp\Program.cs:line 18

我正在使用 NLog 4.7.15NLog.Web.AspNetCore 4.15.0 nuget 包。升级期间版本没有改变。一旦我升级了解决方案中的所有项目,我就开始在运行时收到该错误,Windows 和 macOS。一旦我切换回 .NET 5,错误就会消失。我尝试升级到 NLog 5.0.0-rc2,我得到了同样的错误,但只是 Version=5.0.0.0。降级软件包也没有效果。 我也在使用 JetBrains Rider。

我不知道如何解决这个问题。我在网上搜索过,但没有找到任何有效的解决方案。

似乎是 .NET 6 中的错误

项目文件中的这个 属性 导致了问题

<CopyLocalLockFileAssemblies>false</CopyLocalLockFileAssemblies>

删除它解决了它。不是最好的解决方案,因为我需要使用 属性。将不得不向 .NET 团队提出问题。

编辑:给他们制造了一个问题:https://github.com/dotnet/runtime/issues/68720