2011-01-13 10 views
2

Meine Lösung besteht aus mehreren Projekten, von denen alle eine Klassenbibliothek haben, mit Ausnahme einer, deren Ausgabetyp eine Windows-Anwendung ist. Die Anwendung verweist auf alle anderen Projekte. Ich habe auch eine COM-Komponente, die von einigen der Projekte und der Anwendung auch referenziert wird.Isolierte COM für mehrere Projekte einrichten

Ich kann die Regfree COM einrichten, indem Sie die isolierte Eigenschaft der referenzierten COM-Komponente in Visual Studio auf TRUE ändern. Die Lösung wird erfolgreich erstellt, und ich kann die Manifestdatei sehen, die für diese bestimmte Assembly oder Anwendung generiert wurde.

Jetzt ist meine Frage, dass ich das für alle Projekte tun muss, die auf die COM-Komponente verweisen? Wenn ja, dann weiß ich, dass ich die Isolated-Eigenschaft bei mehr als einem Projekt nicht auf TRUE setzen kann (gibt einen Build-Fehler). Wie kann ich das umgehen?

Ich bin relativ neu zu .net und weiß nicht viel regfree COM (ich nehme an, was ich mache IS regfree COM?). Jede Hilfe, die ich zu diesem Thema bekommen kann, wird sehr geschätzt. Vielen Dank.

Ich bin derzeit mit VS 2008

EDIT: Wenn die isolierte Eigenschaft auf True für mehrere Projekte gesetzt wird der Build-Fehler besagt, dass myCOMcomponent.ocx in den generierten Manifeste für die beiden Projekte definiert ist.

+0

Lassen Sie uns den Buildfehler nicht erraten. –

+0

@Hans: Ich habe den Beitrag mit dem Build-Fehler bearbeitet. Lassen Sie es mich wissen, wenn Sie weitere Informationen benötigen. – Praneeth

Antwort

1

Sie können jede COM-Komponente nur einmal pro Anwendung isolieren. Deshalb erhalten Sie einen Fehler. Sie können das umgehen, wenn Sie eine Wrapper-Bibliothek erstellen, die die Funktionalität in dieser Komponente verfügbar macht, und dann alles andere den Wrapper anstelle der COM-Komponente direkt aufrufen lässt. Auf diese Weise haben Sie nur einen Verweis auf die COM-Komponente und müssen diese daher nur einmal isolieren.