Ошибка сборки ядра .net при сборке образа докера Newtonsoft.Json - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь собрать свой основной проект .net в докер-контейнер, но кажется, что он не может найти Newtonsoft.Json, который, как я думал, был включен в ядро ​​asp.net

Вот мойфайл docker:

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 58373
EXPOSE 44370

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY ["TestCode/TestCode.csproj", "TestCode/"]
RUN dotnet restore "TestCode/TestCode.csproj"
COPY . .
WORKDIR "/src/TestCode"
RUN dotnet build "TestCode.csproj" -c Release -o /app

FROM build AS publish
RUN dotnet publish "TestCode.csproj" -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "TestCode.dll"]

При попытке создать ошибку появляется следующая ошибка: Не удалось загрузить файл или сборку 'Newtonsoft.Json, версия = 9.0.0.0, культура = нейтральная, PublicKeyToken = 30ad4fe6b2a6aeed' илиодна из его зависимостей.Система не может найти указанный файл.

Ответы [ 3 ]

0 голосов
/ 13 мая 2019

В моем случае, когда используется JsonProperty в классе,

Интеллектуальный IntelliCode Visual Studio,

using Newtonsoft.Json;

Затем во время docker build,

предупреждение MSB3245: не удалось разрешить эту ссылку.Не удалось найти сборку "Newtonsoft.Json".Убедитесь, что сборка существует на диске.

Когда я проверил, обнаружил, что Visual Studio добавил Ссылка на сборку в Newtonsoft.Json (это можно найти, развернув Зависимости узел в обозревателе решений в Visual Studio).И я использовал образы Linux.

Поэтому, чтобы решить эту проблему, я удалил Ссылка на сборку и добавил пакет nuget Newtonsoft.Json, тогда docker build был успешным.

0 голосов
/ 28 июня 2019

1 способ состоит в том, чтобы ваш другой проект был частью вашего решения и ссылался на него как на ссылку проекта.или 2-й способ, как быстрое решение, что я сделал, и это сработало для меня, после COPY.,это добавить еще одну команду копирования в файл Docker, как: COPY ./bin/Debug/.../your-referenced-dll-name.dll.- Надеюсь, это поможет

0 голосов
/ 01 марта 2019

Нашел проблему.Обновите пакет NuGet Microsoft.VisualStudio.Azure.Containers.Tools.Targets до последней версии, и проблема исчезнет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...