727 Stimmen

Interop-Typ kann nicht eingebettet werden

Ich erstelle eine Webanwendung auf dem .NET 4.0 Framework (beta2) in C#.

Wenn ich versuche, eine Assembly namens "ActiveHomeScriptLib" zu verwenden, erhalte ich folgende Fehlermeldung:

Interop-Typ ActiveHomeScriptLib.ActiveHomeClass'. kann nicht eingebettet werden. Verwenden Sie stattdessen die entsprechende Schnittstelle stattdessen.

Wenn ich das Framework auf Version 3.5 umstelle, treten keine Fehler auf.

Was ist ein Interop-Typ und warum tritt dieses Problem nur auf, wenn ich das Framework 4.0 verwende?

15voto

Navdeep Punkte 151

Ich habe die Lösung

Gehen Sie zu den Referenzen und klicken Sie mit der rechten Maustaste auf die gewünschte DLL, um die Option "Embed Interop Types" auf "False" oder "True" zu setzen.

9voto

Zach Punkte 525

Ich bin auf dieses Problem gestoßen, als ich ein TFS-Projekt auf meinen lokalen Computer heruntergeladen habe. Angeblich funktionierte es auf dem Rechner des Verfassers einwandfrei. Ich habe dies einfach geändert...

WshShellClass shellClass = new WshShellClass();

Zu diesem...

WshShell shellClass = new WshShell();

Jetzt funktioniert es wie ein Champion!

3voto

Doug Null Punkte 7488

Ich hatte das gleiche Problem in VB.NET 2013 mit Office 2007, und dies löste es:

VS 2013 VB.NET-Projekt > Requisiten > Referenzen > Microsoft Word 12.0 Object Lib > Interop-Typen einbetten: ändern Sie True in False

1voto

Ramezani r Punkte 161

http://digital.ni.com/public.nsf/allkb/4EA929B78B5718238625789D0071F307

Dieser Fehler tritt auf, weil der Standardwert für die Eigenschaft "Embed Interop Types" der TestStand-API-Interop-Baugruppe, auf die im neuen Projekt verwiesen wird, wahr ist. Um diesen Fehler zu beheben, ändern Sie den Wert der Eigenschaft Interop-Typen einbetten in Falsch, indem Sie die folgenden Schritte ausführen: Wählen Sie im Projektmappen-Explorer im Abschnitt Referenzen Ihres Projekts die Referenz auf die TestStand Interop Assembly aus. Suchen Sie die Eigenschaft Embed Interop Types im Eigenschaftenbrowser, und ändern Sie den Wert in False

1voto

Rahul Punkte 2031

Visual Studio 2017 Version 15.8 machte es möglich, die PackageReferencesyntax zu verwenden. um NuGet-Pakete in Visual Studio Extensibility (VSIX)-Projekten zu referenzieren. Dies macht es viel einfacher, über NuGet-Pakete nachzudenken und öffnet die Tür für ein komplettes Metapaket, das das gesamte VSSDK enthält.

Die Installation des folgenden NuGet-Pakets wird das Problem lösen EmbedInteropTypes Ausgabe.

Install-Package Microsoft.VisualStudio.SDK.EmbedInteropTypes

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X