如何在Windows Nanoserver Docker容器中运行已编译C++ Visual Studio项目?
Windows Nano Server容器中运行Visual Studio编译EXE无响应的解决办法
问题详情
作为Docker新手,我尝试将本地编译好的Visual Studio项目部署到nanoserver容器中运行,但遇到了异常:
- 我的Dockerfile内容:
FROM mcr.microsoft.com/windows/nanoserver:ltsc2019 WORKDIR C:\\app COPY . C:\\app\\ CMD ["C:\\app\\RaftAlgorithm.exe"]
- 在容器内执行
RaftAlgorithm.exe时,没有任何输出直接回到命令行,但该EXE在容器外运行完全正常(会循环执行并定时输出内容)。 - 测试另一个编译好的项目,在容器中同样无法正常运行。
排查尝试
曾怀疑是依赖缺失问题,按照建议切换到Windows Server Core容器运行,问题仍未解决。
最终解决步骤
- 用
dumpbin工具分析项目的依赖DLL文件; - 将分析得到的所有依赖DLL复制到容器内的应用目录;
- 以
release模式重新构建项目,重新部署后EXE可正常运行。
内容的提问来源于stack exchange,提问作者Dror Chen
相关产品推荐
相关产品推荐

