2016-07-08 13 views
-1

Ich habe eine neue C# Windows Forms-Anwendung erstellt. Ich habe COM-Referenz "Microsoft Excel 15.0 Object Library" zu meinem Projekt hinzugefügt. Dieses Projekt dient zum Importieren von Excel-Daten in den Datensatz. Ich habe es getan. Ich arbeite gut in meinem Computer. Wenn ich die exe-Datei auf einem anderen Computer ausführe, zeige ich einen Fehler wie unten an.C# Windows-Anwendung konnte nicht auf einem anderen Computer ausgeführt werden

ERROR:

Unable to cast COM object of type Microsoft.Office.Interop.Excel.ApplicationClass’ to interface type ‘Microsoft.Office.Interop.Excel._Application’” This operation failed because the QueryInterface call on the COM component for the interface with IID '{{000208D5-0000-0000-C000-000000000046}' failed due to the following error: Error loading type library/DLL (Exception from HRESULT:0x80029C4A(TYPE_E_CANTLOADLIBRARY)).

+0

(Re-) Installation von Office auf dieser Maschine zu setzen . –

+0

Wenn Sie interop verwenden, sollten Sie dieselbe MS Office-Version auf den Zielrechnern installieren. – Jaxedin

+0

Dank @Dirk, @ Jaxedin so sehr, Es löst meinen Fehler, Wenn ich meine Anwendung auf viele Systeme ausführen möchte, ist es nicht besser, die gleiche Office-Version auf alle diese Systeme zu installieren. –

Antwort

0

COM-Komponenten sind nicht meine Spezialität, und ich sie nicht zu oft verwenden. Aber ich werde dir erzählen, was ich vorher erlebt habe. Bitte beachten Sie, dass ich dies vor ca. 6 Monaten erlebt habe und die Umstände an meinem Arbeitsplatz bei weitem nicht ideal waren.

Um eine/einige COM-Komponente (n) zu verwenden, muss auch ihre Abhängigkeit auf dem Zielcomputer (in diesem Fall Excel/Office) installiert sein. Haben Sie überprüft, ob auf dem Zielcomputer Excel installiert ist?

Wenn nicht, können Sie eine OLEDB-Verbindung verwenden, um Excel-Dateien zu lesen. Ich erinnere mich nicht, wie das konkret gemacht wird.

Vielleicht kann dies in irgendeiner Weise zu helfen, Excel-Dateien mit OLEDB zu lesen: http://www.codeproject.com/Tips/705470/Read-and-Write-Excel-Documents-Using-OLEDB

+0

Danke für die Antwort, aber ich brauche eine Antwort mit com-Referenz (Microsoft Excel 15.0 Objektbibliothek) auf Excel zugreifen. Der Link, den du geteilt hast, ist sehr hilfreich. –

+0

Wie @Jaxedin sagte, solltest du genau die gleichen Office-Bibliotheken haben, die auf jedem Computer verfügbar sind, auf dem deine Software läuft. Wenn Sie das nicht garantieren können, schlage ich vor, dass Sie NetOffice http://netoffice.codeplex.com/ verwenden, ein intelligenter Wrapper für MS Office-Anwendungen, der Ihnen entspanntere Bedingungen ermöglicht, solange Sie nur Ressourcen verwenden, die von allen installierten Versionen unterstützt werden . – VBobCat

+0

Dank @VBobCat, U r Vorschlag ist toll, ich hoffe, Netoffice Wrapper wird meinen Fehler zu lösen. Ich werde es versuchen. –

0

In Ihrem proyect Referenzen, versuchen Copy Local = true in der DLL

Verwandte Themen