不支持 COM:AWS Lambda .net 3.1 中的 PlatformNotSupportedException
COM is not supported: PlatformNotSupportedException in AWS Lambda .net 3.1
我正在使用 AWS Lambda .NET 3.1 迁移解决方案。
该解决方案最初是在 .NET 4.8 FRAMEWORK 中构建的。
当我使用 visual studio AWS SDK 集成构建解决方案时,我没有遇到任何问题,但是当我在 lambda 控制台中对此进行测试时,我收到以下错误消息:
COM is not supported: PlatformNotSupportedException
at WeeklyDevReportGenerator.ParseDevopsCSVs.ParseCSV(String fileName)
public void ParseCSV(string fileName)
{
xlApp = new Application();
xlWorkbook = xlApp.Workbooks.Open(fileName);
xlWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkbook.Sheets[1];
xlRange = (Microsoft.Office.Interop.Excel.Range)xlWorksheet.UsedRange;
rowCount = xlRange.Rows.Count;
colCount = xlRange.Columns.Count;
Read();
CleanUp();
week++;
}
这次我很迷茫,我开始认为我可能需要将项目迁移到 aws 支持的 .NET 6.0。
还有其他解决方案吗?
您将需要重写与 Excel 工作簿交互的代码。
您的代码(间接)使用一种称为 COM 的技术与 Excel 的本地实例进行通信。您遇到的错误是说 Lambda 运行器不支持 COM,但更根本的问题是 lambda 运行器上没有 Excel。
最直接的方法是将您对 Excel 的使用替换为可以读写 Excel 文件的库。 ClosedXML、EPPlus、Aspose.Cells 和 NPOI 都是流行的选项。
我正在使用 AWS Lambda .NET 3.1 迁移解决方案。 该解决方案最初是在 .NET 4.8 FRAMEWORK 中构建的。 当我使用 visual studio AWS SDK 集成构建解决方案时,我没有遇到任何问题,但是当我在 lambda 控制台中对此进行测试时,我收到以下错误消息:
COM is not supported: PlatformNotSupportedException
at WeeklyDevReportGenerator.ParseDevopsCSVs.ParseCSV(String fileName)
public void ParseCSV(string fileName)
{
xlApp = new Application();
xlWorkbook = xlApp.Workbooks.Open(fileName);
xlWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkbook.Sheets[1];
xlRange = (Microsoft.Office.Interop.Excel.Range)xlWorksheet.UsedRange;
rowCount = xlRange.Rows.Count;
colCount = xlRange.Columns.Count;
Read();
CleanUp();
week++;
}
这次我很迷茫,我开始认为我可能需要将项目迁移到 aws 支持的 .NET 6.0。
还有其他解决方案吗?
您将需要重写与 Excel 工作簿交互的代码。
您的代码(间接)使用一种称为 COM 的技术与 Excel 的本地实例进行通信。您遇到的错误是说 Lambda 运行器不支持 COM,但更根本的问题是 lambda 运行器上没有 Excel。
最直接的方法是将您对 Excel 的使用替换为可以读写 Excel 文件的库。 ClosedXML、EPPlus、Aspose.Cells 和 NPOI 都是流行的选项。