.net-core - .Net Core 应用程序退出代码。Linux 上的不同行为 (RHEL 7)
问题描述
我似乎无法设置 dotnet 核心控制台应用程序的退出代码,以便在 RHEL7 上观察到预期的行为。我正在使用 dotnet 2.0.3。
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Environment.Exit(12345);
}
}
}
在 Windows 上,执行程序时错误级别设置正确
dotnet HelloWorld.dll
echo %errorlevel%
12345
在 RHEL7 上,这不是所看到的
dotnet HelloWorld.dll
echo $?
57
我尝试了各种方法来返回退出代码(设置 Environment.ExitCode 属性,从程序返回一个整数),但都没有成功。
我会尽快在最新的 dotnet core 版本(2.1.302)上进行测试,但同时发布这个问题。
有谁知道这里发生了什么?
谢谢
解决方案
我最终发现了问题 - 这是因为在 RHEL7 上,与 Windows 不同,退出代码/错误级别被限制为 8 位整数。我需要将退出代码保持在 [0,255] 范围内。
推荐阅读
- typescript - Typescript Class - 构造函数中应该有一个私有字段吗?
- mongodb - 根据地图值更新 mongo 文档并删除该值
- matlab - 从另一个文件夹将 Simulink 模型打开到内存中
- python - python:如何解释切片的索引
- python - 为什么当我输入另一个型号(如 Model X)时,这个程序只会显示 Model S 的总价格?
- google-sheets - 谷歌表格 5000 万个单元格计数工作
- html - 在 Next.js 中,如何创建一个覆盖整个浏览器窗口的 bg 图像
- docker - Docker 无法启动守护进程:未安装设备 cgroup [Debian GNU/Linux 9 (stretch)] armv7l
- azure-functions - 从只能访问有限虚拟网络的 Azure 存储帐户订阅事件的方法是什么?
- firebase - 我可以将我的 Firebase 存储设置在与我的 Firestore 和云功能不同的区域吗?