C# .Net 6.0 应用程序的 Console.WriteLine 未在 Linux 上输出到 /bin/bash
C# .Net 6.0 App's Console.WriteLine not output to /bin/bash on Linux
我 运行 在执行以下步骤时遇到了麻烦:
- 使用 Hello World 样板创建一个简单的 C# .net 6 控制台应用程序,并在本地发布可移植二进制文件。
- 根据mcr.microsoft创建一个docker容器。com/dotnet/sdk:6.0
- 将发布结果复制到
consoleapp
目录中的容器。
- 打开容器的交互式会话
- 执行
/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"]
我 运行 在执行以下步骤时遇到了麻烦:
- 使用 Hello World 样板创建一个简单的 C# .net 6 控制台应用程序,并在本地发布可移植二进制文件。
- 根据mcr.microsoft创建一个docker容器。com/dotnet/sdk:6.0
- 将发布结果复制到
consoleapp
目录中的容器。 - 打开容器的交互式会话
- 执行
/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"]