在 .NET 10 中,SaveAs() 出现 FileNotFoundException

This article was translated from English: Does it need improvement?
Translated
View the article in English

在 .NET 10 项目中调用 WorkBook.SaveAs() 可能会导致 Visual Studio 出现 FileNotFoundException 用于 IronXL.XmlSerializers。 在大多数情况下,这只是调试器捕获的初次机会异常,而非真正的运行时失败,Excel 文件仍然被写入。 使用以下步骤确认您看到的是哪一个,并停止调试器在此处中断。

System.IO.FileNotFoundException: Could not load file or assembly 'IronXL.XmlSerializers'

.NET XML 序列化来自不存在的可选序列器程序集的探测。这一缺失由运行时内部处理并继续,因此工作簿仍然会保存。 在仅我的代码禁用的情况下,调试器会在内部异常抛出时中断,使得已处理的事件看起来像崩溃。

解决方案

1. 使用最小工作流程重现

创建一个新的 ASP.NET Core Web 应用程序,目标为 .NET 10,并安装 IronXL.Excel 版本 2026.6.1

<PackageReference Include="IronXL.Excel" Version="2026.6.1" />
<PackageReference Include="IronXL.Excel" Version="2026.6.1" />
XML

写入一个单一值并保存以确认行为。

using IronXL;

WorkBook workbook = WorkBook.Create();
WorkSheet sheet = workbook.DefaultWorkSheet;
sheet["A1"].Value = "Hello, World";
workbook.SaveAs("output.xlsx");
using IronXL;

WorkBook workbook = WorkBook.Create();
WorkSheet sheet = workbook.DefaultWorkSheet;
sheet["A1"].Value = "Hello, World";
workbook.SaveAs("output.xlsx");
Imports IronXL

Dim workbook As WorkBook = WorkBook.Create()
Dim sheet As WorkSheet = workbook.DefaultWorkSheet
sheet("A1").Value = "Hello, World"
workbook.SaveAs("output.xlsx")
$vbLabelText   $csharpLabel

2. 启用仅我的代码

打开 Visual Studio 调试器选项并启用仅我的代码。 关闭时,调试器会在库正在内部处理的异常上中断; 开启时,可以让这些已处理的异常通过而不中断您的会话。

3. 确认文件已生成

检查 output.xlsx 是否已写入您的输出路径。 成功的文件表明中断是初次机会异常,而非运行时失败。

请注意即便文件生成成功,与 .NET XML 序列化相关的初次机会 FileNotFoundException 仍可能出现。

调试提示

没有独立的 IronXL.XmlSerializers NuGet 包。 不要尝试添加一个来清除信息; 这不会解决任何问题,该程序集并不打算单独安装。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 2,174,917 | 版本: 2026.7 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronXL.Excel
运行示例 观看您的数据变成电子表格。