C# .Net 6.0 应用程序的 Console.WriteLine 未在 Linux 上输出到 /bin/bash

C# .Net 6.0 App's Console.WriteLine not output to /bin/bash on Linux

我 运行 在执行以下步骤时遇到了麻烦:

  1. 使用 Hello World 样板创建一个简单的 C# .net 6 控制台应用程序,并在本地发布可移植二进制文件。
  2. 根据mcr.microsoft创建一个docker容器。com/dotnet/sdk:6.0
  3. 将发布结果复制到 consoleapp 目录中的容器。
  4. 打开容器的交互式会话
  5. 执行/consoleapp/ConsoleApp1.exe

没有错误,但没有结果。这是应用程序中的(唯一)代码:

Console.WriteLine("Hello, World!");

我期待看到:

Hello, World!

我觉得我错过了一些非常简单的东西...任何帮助将不胜感激。

.exe 文件仅供 Windows 使用。在容器中(Linux 上的 运行),您使用

启动您的应用程序
dotnet ConsoleApp1.dll

在这种情况下,您的 Dockerfile 将如下所示:

FROM mcr.microsoft.com/dotnet/runtime:6.0

WORKDIR /app
COPY bin/Release/net6.0/publish/* .

CMD ["dotnet", "ConsoleApp1.dll"]