如何解决 Rider docker 调试问题

Posted

技术标签:

【中文标题】如何解决 Rider docker 调试问题【英文标题】:How to solve rider docker debugging issue 【发布时间】:2020-03-27 12:38:38 【问题描述】:

所以我有一个在 Visual Studio 上开发的 .net core 3.1 web api 项目。我现在已切换到骑手,但在尝试调试应用程序时出现错误。我可以运行它构建的应用程序,并且在本地 docker 容器中运行良好。

当我按下调试按钮时,我收到以下错误:

Unhandled Exception:
System.IO.FileNotFoundException: Could not load file or assembly 'JetBrains.Platform.Core, Version=777.0.0.0, Culture=neutral, PublicKeyToken=1010a0d8d6380325' or one of its dependencies.
File name: 'JetBrains.Platform.Core, Version=777.0.0.0, Culture=neutral, PublicKeyToken=1010a0d8d6380325'
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly 'JetBrains.Platform.Core, Version=777.0.0.0, Culture=neutral, PublicKeyToken=1010a0d8d6380325' or one of its dependencies.
File name: 'JetBrains.Platform.Core, Version=777.0.0.0, Culture=neutral, PublicKeyToken=1010a0d8d6380325'

是什么导致了这个错误,我该如何解决?

附加信息:

Dockerfile:

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["Niverobot.WebApi/Niverobot.WebApi.csproj", "Niverobot.WebApi/"]
COPY ["Niverobot.Domain/Niverobot.Domain.csproj", "Niverobot.Domain/"]
RUN dotnet restore "Niverobot.WebApi/Niverobot.WebApi.csproj"
COPY . .
WORKDIR "/src/Niverobot.WebApi"
RUN dotnet build "Niverobot.WebApi.csproj" -c Release -o /app/build

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

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

在 Rider 中运行配置:

【问题讨论】:

我也在 Windows 上运行 【参考方案1】:

我在 Rider 的文档中读到它还不支持 Windows 上的 docker 调试。

【讨论】:

【参考方案2】:

您好,您问我上个月能否分享我的运行/调试配置。我今天才看到消息。在这里。

我不记得除了遵循文档来使其正常工作之外的其他任何事情。我最近将 Rider 升级到 2020.1,发现这有助于解决我在 Rider 中运行 .NetCore 3.1 时遇到的一些问题。

我发现我的设置和你的设置之间的唯一区别是我使用的是 docker-compose

【讨论】:

以上是关于如何解决 Rider docker 调试问题的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Rider 调试 WSL2 中的进程?

如何强制 Rider 使用 Chrome 进行调试?

如何在 Rider 中为项目设置默认运行配置

JetBrains Rider - 如何从断点中排除某种类型的异常

JetBrains Rider 无法检测到单元测试

如何在 Mac 上使用 JetBrains Rider 开发和调试在 Docker 中运行的 .NET Core 应用程序