Как связать локальный проект в качестве зависимости сборки для контейнера

#c# #.net #docker

Вопрос:

У меня есть решение Visual Studios с 2 проектами; Один — сервис, другой-SDK, который является зависимостью от сборки сервиса. Я пытаюсь развернуть контейнер docker для службы, но проект SDK находится вне контекста сборки для файла dockerfile и должен оставаться таким — я попытался скопировать SDK.dll в контексте сборки и со ссылкой на это в файле Service.csproj я попытался использовать символическую ссылку (по-видимому, Докер этого не ценит), и я даже попытался просто скопировать весь проект SDK в каталоги служб, чтобы посмотреть, сработает ли это. Никаких кубиков.

Докерфайл:

 FROM artifacts.project.com/docker-microsoft-remote/dotnet/aspnet:5.0 AS base ARG ASPNETCORE_Kestrel__Certificates__Default__Path ENV ASPNETCORE_Kestrel__Certificates__Default__Path=$ASPNETCORE_Kestrel__Certificates__Default__Path ARG ASPNETCORE_Kestrel__Certificates__Default__Password ENV ASPNETCORE_Kestrel__Certificates__Default__Password=$ASPNETCORE_Kestrel__Certificates__Default__Password  WORKDIR /app EXPOSE 80 EXPOSE 443 EXPOSE 8443 EXPOSE 44360  FROM artifacts.project.com/docker-microsoft-remote/dotnet/sdk:5.0 AS build ARG USERNAME ARG PASSWORD ARG PAT ARG FEED_URL RUN wget -qO- https://aka.ms/install-artifacts-credprovider.sh | bash ENV VSS_NUGET_EXTERNAL_FEED_ENDPOINTS "{"endpointCredentials": [{"endpoint":"${FEED_URL}", "password":"${PAT}"}]}" ENV DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0  WORKDIR /src COPY ["./service.csproj", "./"] COPY ["./nuget.config", "./"] COPY ["./sdk", "./"]  RUN dotnet restore "./service.csproj" RUN dotnet build "service.csproj" -c Release -o /app/build  FROM build AS publish RUN dotnet publish "service.csproj" -c Release -o /app/publish  FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "service.dll"]  

Для файла service.csproj он пытается ссылаться на проект SDK (который я только что скопировал в проект службы из-за временного помешательства) примерно так:

 lt;ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'"gt;  lt;ProjectReference Include='.sdksdk.csproj' /gt;  lt;/ItemGroupgt;  

Когда я пытался ссылаться на dll, я изменил ссылку на ProjectReference на просто ссылку и, конечно, изменил путь, чтобы указать на файл dll вместо csproj.

В любом случае, я получаю сообщение об ошибке, в котором говорится, что он не может найти проект sdk при запуске файла Dockerfile. Любая информация, которая может быть предоставлена, будет высоко оценена.