簡體   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