我開發了一個運行Excel宏的SSIS包(如果我沒有記錯的話 - VS2008,SQL Server 2008和Windows Server 2008 - 服務器退役了)。該軟件包使用SQL Server 2016和VS2015遷移到Azure。從ssis運行宏
我們現在第一次運行它一年多了,並且失敗了。用於從SSIS運行宏的原始代碼取自Run an Excel Macro from SSIS。
代碼:公共無效的主要的1號線
using System;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.IO.Compression;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using Microsoft.Office.Interop;
using Excel = Microsoft.Office.Interop.Excel;
public void Main()
{
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkBook = xlApp.Workbooks.Open("C:\\ExcelDirectory\\DATA.xlsm"); // absolute path needed
xlApp.Run("Formatting"); // method overloads allow you to send it parameters, etc.
xlWorkBook.Close(true); // first parameter is SaveChanges
xlApp.Quit();
}
錯誤:
Additional information: Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
的Interop提及,雖然由於手動安裝從MS(EXE)不會做的工作增加。也許.dll的不好?請幫助並記住我是這方面的新手。