.NET 4.0 Interop Type Embedding Probleme
Entwickler, die mit der „ActiveHomeScriptLib“-Assembly in .NET 4.0 arbeiten, stoßen möglicherweise auf den Fehler: „Der Interop-Typ ‚ActiveHomeScriptLib.ActiveHomeClass‘ kann nicht eingebettet werden. Verwenden Sie stattdessen die entsprechende Schnittstelle.“ Dieses Problem tritt in .NET 3.5 nicht auf.
Interop-Assemblies verstehen
Interop-Assemblys schließen die Lücke zwischen verwaltetem (.NET) Code und nicht verwalteten COM-Komponenten (Component Object Model). Sie ermöglichen die Kommunikation zwischen diesen unterschiedlichen Umgebungen.
Grundursache
.NET 4.0 ermöglicht die direkte Einbettung primärer Interop-Assemblys (PIAs) in Ihre Anwendung, wodurch eine separate Bereitstellung vermieden wird. Allerdings sind nicht alle Baugruppen zum Einbetten geeignet. Die „ActiveHomeScriptLib“-Assembly ist ein solches Beispiel.
Auflösung
Die Lösung besteht darin, die Einbettung von Interop-Typen zu verhindern. Suchen Sie in Visual Studio 2010 das Eigenschaftenfenster für die Assemblyreferenz „ActiveHomeScriptLib“ und legen Sie die Eigenschaft „Embed Interop Types“ auf „False“ fest.
Weitere Überlegungen
Wie Michael Gustus bemerkte, kann der Fehler möglicherweise auch durch Entfernen des Suffixes „.Class“ aus den relevanten Typen behoben werden.
Das obige ist der detaillierte Inhalt vonWarum kann ich den Interop-Typ „ActiveHomeScriptLib.ActiveHomeClass' nicht in meine .NET 4.0-Anwendung einbetten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!