繁体   English   中英

当我在Azure Devops管道中运行构建(vstest)时无法打开Excel

[英]Unable to open Excel when i run build (vstest) in azure devops pipeline

我正在使用Microsoft.Office.Interop.Excel打开excel工作簿以对给定项目进行一些自动化。 当我运行我的构建时,我遇到此错误

System.Runtime.InteropServices.COMException:检索具有以下错误的CLSID为{00024500-0000-0000-C000-000000000046}的组件的COM类工厂失败:80040154未注册类(HRESULT的异常:0x80040154(REGDB_E_CLASSNOTREG))。

这来自我的视觉工作室中的这段代码。 excel.Application x1app =新的excel.Application();

我可以在本地运行测试,但是当我在天蓝色的devops中运行它时,它将无法正常工作。 我相信这是因为devops内部没有excel,因此无法执行代码。

  1. 有什么办法可以在仍然使用互操作的同时解决此错误?
  2. 除了EPPlus,我还有其他选择吗?

    excel.Application x1app = new excel.Application(); x1app.SheetsInNewWorkbook = 1; x1app.Visible = true; excel.Workbook x1workbook = x1app.Workbooks.Open(); excel.Workbook NewWorkBook = x1app.Workbooks.Add(); for (sheets) { excel._Worksheet x1worksheet = x1workbook.Sheets[x]; x1worksheet.Copy(Type.Missing, After: NewWorkBook.Sheets[x - 3]); } Thread.Sleep(2000);

我应该能够在devops上成功运行构建

根据您的描述,您正在执行的操作需要在生成代理上安装Excel。

如果要在Azure DevOps中使用主机生成代理。 好像没有安装在机器上。 您可以找到在Azure Pipelines Hosted代理池中的计算机上安装的软件的完整列表,例如此Azure Pipelines Hosted VS2017映像

解决方法是,如果Microsoft托管的代理不能满足您的需求,那么您可以部署自己的自托管代理

只需确保您的自托管代理环境与本地开发环境相同即可。

此外,您对Excel的详细用法还不太清楚。 您也可以尝试使用openxml。 请在这里查看类似的问题: 如何在VSTS中构建包含Excel创建的项目?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM