2010-12-09 5 views
4

Ich entwickle zwei Anwendungen, die beide .NET4 Assembly mit dem gleichen Namen, andere Version haben. Diese Assembly macht einige COM-Objekte verfügbar. Ist es möglich, beide Anwendungen zu installieren und COM-Objekte beider Baugruppen zu verwalten?Versioning Windows COM-Objekte

Ich habe einige anständige Erfahrung mit .NET-Assemblys, aber nicht viel COM. Vielen Dank im Voraus für die Unterstützung eines Neophyten.

Antwort

4

Die Versionierung in COM erfolgt auf niedriger Ebene durch Versionieren der Schnittstellen und Ändern der CLSID (AND IIDs aller geänderten Schnittstellen). Die ProgID des Steuerelements wird auch versioniert, indem eine .versionsnummer hinzugefügt wird. Offensichtlich müssen die Installationspfade anders sein.

Um beispielsweise den Internet Explorer als Web-Steuerelement zu laden, können Sie das Objekt "shell.explorer" erstellen, um die neueste Version zu erstellen, "shell.explorer.1" "shell.explorer.2" usw. map Verschiedene Versionen des Shell.explorer-Steuerelements - registriert unter verschiedenen CLSIDs - teilen sich dieselbe VersionIndependentProgID tho. Wenn also eine Anwendung versucht, die versionslose ProgID zu instanziieren, erhält sie die neueste Version.