
程序退出码为 0 表示执行成功无错误,但控制台窗口会立即关闭导致看不到输出;只需在 Main 方法末尾添加 Console.ReadKey() 即可保持窗口打开,方便查看转换结果。
程序退出码为 0 表示执行成功无错误,但控制台窗口会立即关闭导致看不到输出;只需在 `main` 方法末尾添加 `console.readkey()` 即可保持窗口打开,方便查看转换结果。
当你在 Visual Studio 2019 中运行 C# 控制台程序(如本例中的 HTML 到 Jira ADF 格式转换器)时,看到输出 The program '[36520] HTMLtoADF.exe' has exited with code 0 是完全正常的——这并非错误,而是 .NET 控制台应用的标准行为:程序执行完毕、主线程终止,系统随即关闭控制台窗口。退出码 0 在操作系统层面代表“成功”,说明你的 ConvertHtmlToAdf 逻辑已正确执行,JSON 生成无异常。
问题根源在于:控制台应用默认不具备“等待用户输入”的机制。一旦 Main 方法执行完最后一行代码(例如 Console.WriteLine(...)),进程即刻退出,窗口随之消失,导致你无法观察到关键的 ADF 输出结果。
✅ 正确解决方案是在 Main 方法末尾显式添加阻塞语句:
static void Main()
{
string htmlContent = "<p>Hello, <strong>world!</strong></p><div class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/xiazai/skill5117" title="HTML Extract"><img
src="https://img.php.cn/upload/skill/000/000/081/179033952939354.jpg" alt="HTML Extract" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/xiazai/skill5117" title="HTML Extract">HTML Extract</a>
<p>使用 MinerU 从 HTML 页面和文件中提取内容,将 HTML 转换为保持标题、列表、表格及文本层次结构的干净、结构化 Markdown。F...</p>
</div>
<a href="/xiazai/skill5117" title="HTML Extract" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</div><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)</a>”;</p>";
string adfResult = ConvertHtmlToAdf(htmlContent);
Console.WriteLine("Converted ADF:");
Console.WriteLine(adfResult);
Console.ReadKey(); // ? 关键修复:暂停程序,等待任意键输入
}? 注意事项与最佳实践:
-
Console.ReadKey()会暂停程序并等待用户按下任意键(不需回车),适合调试阶段快速验证输出; - 若需更友好的提示,可前置
Console.WriteLine("Press any key to exit...");; - 生产环境或自动化脚本中请勿保留该语句,否则会阻塞流程;
- 确保已正确安装 NuGet 包
HtmlAgilityPack和Newtonsoft.Json,否则编译将失败; - 当前代码对嵌套结构(如
<p><strong>text</strong> and plain</p>)的支持尚不完善——<strong></strong>的InnerHtml会包含子节点内容,可能导致重复解析;建议改用htmlElement.InnerText提取纯文本,并递归处理子元素(参考ConvertHtmlNodesToAdfNodes的调用逻辑)。
通过这一微小但关键的调整,你就能稳定查看 HTML 转换后的 ADF JSON 结构,大幅提升开发与调试效率。


















