2017-10-10 4 views
0

Ich entwickelte ein SSIS-Paket, das Excel-Makros ausführte (VS2008, SQL Server 2008 und Windows Server 2008, wenn ich mich richtig erinnere - Server wurden außer Betrieb genommen). Das Paket wurde mithilfe von SQL Server 2016 und VS2015 nach Azure migriert.Laufendes Makro von ssis

Wir führen es jetzt zum ersten Mal seit über einem Jahr und es scheitert. Ursprünglicher Code zum Ausführen des Makros von SSIS wurde von hier Run an Excel Macro from SSIS übernommen.

Code:

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(); 
} 

Fehler in Zeile 1 of Public void Main:

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 Referenz wurde, obwohl manuell hinzugefügt, da die Installation (exe) von MS würde den Job nicht machen. Vielleicht sind die .dlls nicht gut? Bitte helfen und bedenken Sie, ich bin ein Neuling in diesem Bereich.

Antwort

0

Problem gelöst !! Das Problem ist, wie andere in anderen Posts festgestellt haben, dass ich Office installiert habe. Interop alleine wird KEINE Makros ausführen oder mit Office-Produkten interagieren.