gpt4 book ai didi

windows - Microsoft nanoserver 未运行 exe 文件

转载 作者:可可西里 更新时间:2023-11-01 10:42:21 27 4
gpt4 key购买 nike

我有一个 nanoserver 容器正在运行。我使用

登录容器
> docker run -it microsoft/nanoserver powershell

在内部,我使用以下命令创建了一个简单的 hello world exe:

PS C:\> Add-Type -outputtype consoleapplication -outputassembly helloworld.exe 'public class helloworld{public static void Main(){System.Console.WriteLine("hello world");}}'

当我运行 helloworld.exe 时,stdout 上没有输出。不会生成错误日志文件。我该如何调试?为什么 helloworld.exe 不在标准输出上抛出输出或错误?我该如何调试?

PS C:\> ls

Directory: C:\

Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 8/24/2017 11:08 AM Program Files
d----- 7/16/2016 5:39 PM Program Files (x86)
d-r--- 8/8/2017 3:11 AM Users
d----- 8/24/2017 11:08 AM Windows
-a---- 8/24/2017 11:09 AM 2048 helloworld.exe
-a---- 11/20/2016 5:02 PM 1894 License.txt


PS C:\> .\helloworld.exe
PS C:\> echo %ERRORLEVEL%
%ERRORLEVEL%

最佳答案

没有生成控制台输出的原因是因为您的可执行文件是 x86 而不是 x64。根据此链接,Nanoserver 仅支持 x64: https://www.ca.com/en/blog-developers/docker-containers-os-base-image.html

当我使用 cl.exe 复制一个基于命令行构建的简单 hello world 可执行文件时,我遇到了类似的问题。在使用 dumpbin 检查 exe 是 32 位还是 64 位后,我从正确的 MS VS 开发人员提示重建了可执行文件,即具有 native x64 工具集和设置的那个。这次,我可以在 docker nanoserver 容器中看到应用程序的控制台输出。

关于windows - Microsoft nanoserver 未运行 exe 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45853901/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com