2016-03-27 9 views
-1
nicht gefunden werden

Ich entwickle ein C# -Projekt mit Microsoft Word 2007. Ich füge meinem Projekt einen Verweis auf die Word-Komponente hinzu. Nach dem Kompilieren kann ich Interop dll nicht im Bin finden. Wo kann ich Interop dll finden? Ich muss es kopieren.Interop dll kann im Projekt

+0

So sollte es sein, wenn Sie .NET 4.0 oder höher und VS2010 oder höher verwenden. Die Funktion "Interop-Typen einbetten" ersetzt die Notwendigkeit, die Interop-Bibliotheken noch bereitstellen zu müssen. Repariere es nicht. –

+0

@HansPassant Sie sollten vorsichtig sein, wenn Sie Personen dazu ermutigen, "Interop-Typen aktivieren" zu verwenden, da bei einigen Teilen der Office-Objektmodelle Probleme auftreten (falsche Informationen einbetten). Wenn Sie es empfehlen, empfehlen Sie am besten auch gründliche Tests ... –

+0

Hmm, nein, das ist nicht nötig. Einige Programmierer verstehen nicht, was die "verwendbare Schnittstelle" Fehlermeldung bedeutet, das ist alles. Wir haben Q + A dafür. –

Antwort

1

Erweitern Sie in der Word-Komponente Ihre Projektreferenzen, suchen Sie die Interop-DLL, markieren Sie sie, und aktivieren Sie im Eigenschaftenfenster die Option Lokal kopieren. Nach dem erneuten Kompilieren sollten Sie die DLL in Ihrem Ausgabeverzeichnis sehen.

0

In einer normalen Konfiguration hat Office die DLL (PIA = Primary Interop Assembly) im GAC installiert. Sie müssen es also nicht mit Ihrem Projekt vertreiben.

Bei Office 2007 gibt es immer die Einschränkung, dass die PIAs nicht standardmäßig installiert sind, sodass der Computer des Benutzers sie möglicherweise nicht im GAC hat. Aus diesem Grund hat Microsoft einen verteilbaren als Download bereitgestellt. Ihre Installation kann prüfen, ob die in Ihrem Projekt verwendeten PIAs vorhanden sind, und sie installieren (wie auch das .NET Framework).

Es ist möglich zu erstellen Sie Ihre eigenen IA mit tlbimp.exe (https://msdn.microsoft.com/en-us/library/tw4zwhbe(v=vs.110).aspx) und es gibt Umstände, wenn Sie dies tun möchten. In diesem Fall würden Sie die DLL mit Ihrem Projekt verteilen.

Hans erwähnt die Option "Interop-Typen einbetten" für neuere Versionen von .NET Framework. Dies kann nützlich sein, aber ein gründliches Testen ist notwendig, da diese Option manchmal zu "unerwarteten Ergebnissen" führt (bettet die falschen oder unvollständigen Informationen von der PIA ein).

Verwandte Themen