相关疑难解决方法(0)

从 dotnet 发布输出文件夹运行应用程序时无法加载文件或程序集 Newtonsoft.Json

我发现Newtonsoft.Json图书馆抛出一个问题

System.IO.FileNotFoundException: Could not load file or assembly 'Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'. The system cannot find the file specified
Run Code Online (Sandbox Code Playgroud)

当将应用程序作为 Docker 容器运行时,我想知道为什么会发生这种情况以及为什么依赖关系管理不能顺利工作。

我使用.NET 5

我有一个MyLibrary.A明确用于Newtonsoft.Json 13.0.1序列化和反序列化 json 的库。

我有一个不同的库MyLibrary.B来包装一个MassTransit.AmazonSQS库。此 MassTransit 库也使用 Newtonsoft.Json,但可能是不同的版本。如果我不做任何明确的事情,似乎 MassTransit 依赖项会显示Newtonsoft.Json 11.0.2. 如果MyLibrary.B我明确添加Newtonsoft.Json 13.0.1,即使我没有明确使用它,那么 MassTransit 似乎很乐意使用这个最新的Newtonsoft.Json 13.0.1

现在,我有一个MyApp使用MyLibrary.A和的网络应用程序MyLibrary.B。它在本地运行良好,但我使用 CI/CD 服务器来生成 Docker 映像。

现在,我将此 Docker 映像作为本地容器​​(作为 Docker Compose)启动,并收到错误

Unhandled exception. System.IO.FileNotFoundException: Could not load …
Run Code Online (Sandbox Code Playgroud)

json.net nuget dotnet-sdk dotnet-publish .net-5

16
推荐指数
1
解决办法
5642
查看次数

标签 统计

.net-5 ×1

dotnet-publish ×1

dotnet-sdk ×1

json.net ×1

nuget ×1