Después de actualizar a .NET 6, recibo este error cuando ejecuto mi aplicación ASP.NET dentro de un contenedor Docker:
An unhandled exception was thrown by the application. System.IO.FileNotFoundException: Could not load file or assembly \u0027Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed\u0027. The system cannot find the file specified. File name: \u0027Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed\u0027 at Cadmean.RPC.ASP.FunctionController.GetFunctionCall() at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine] ...Aquí está mi Dockerfile:
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build-env WORKDIR /app COPY . ./ RUN dotnet publish -c Release -o out FROM mcr.microsoft.com/dotnet/aspnet:6.0 WORKDIR /app COPY --from=build-env /app/out . ENTRYPOINT ["dotnet", "DealCrackerBackend.dll"]La biblioteca Newtonsoft.Json 13.0.1 es una referencia de un proyecto diferente (biblioteca de clases) en la solución. El paquete nuget al que se hace referencia, Cadmean.RPC, también usa la misma versión de Newtonsoft.Json 13.0.1.
La aplicación se compila y se ejecuta, pero cuando hago una solicitud, esto sucede.
La aplicación funciona como antes en macOS con .NET 6.0.100.
Tuve el mismo problema y también estaba relacionado con mi proyecto de prueba de unidad. En mi caso, estoy usando nUnit y tiene Microsoft.NET.Test.Sdk versión 17.1.0-preview y esto hace referencia a Newtonsoft.Json versión 9, pero todos los demás proyectos tienen la versión 13. Por ahora, solo eliminé la prueba unitaria proyecto de la solución
Aparentemente, el problema está relacionado con el paquete Newtonsoft.Json y net6 pero solo en el entorno Docker (Linux). Lo reemplazamos con System.Text.Json y se resolvió.