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

3

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

未处理的异常。 System.IO.FileNotFoundException:找不到文件或程序集“NLog.Web.AspNetCore,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 5120e14c03d0593c”。系统找不到指定的文件。 文件名:'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。

我不知道如何解决这个问题。我已经在网上搜索了,但没有找到可行的解决方案。


正如错误所述,找不到NLog程序集;第一步是确保.dll文件存在于开发/输出目录中(并在编译时被复制)。 - Mark
所有内容都应该通过Nuget包管理器加载。我已经验证了该包是否存在,并且引用了正确的程序集版本。还有其他什么我可以做的吗?bin文件夹中只有为该项目创建的.dll文件,而没有nuget包.dll文件。 - graciov
1
参见:https://github.com/NLog/NLog.Web/issues/765 - Rolf Kristensen
是的,那也是我。问题已经解决了。我会跟进.NET团队。 - graciov
1个回答

2

似乎是.NET 6的一个错误

在项目文件中有这个属性会导致这个问题

<CopyLocalLockFileAssemblies>false</CopyLocalLockFileAssemblies>

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

编辑:已与他们创建了一个问题:https://github.com/dotnet/runtime/issues/68720


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接