Freigeben über


ComCompatibleVersionAttribute-Klasse

Gibt für einen COM-Client an, dass alle Klassen in der aktuellen Version einer Assembly mit den Klassen in einer früheren Version der betreffenden Assembly kompatibel sind.

Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
<AttributeUsageAttribute(AttributeTargets.Assembly, Inherited:=False)> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class ComCompatibleVersionAttribute
    Inherits Attribute
'Usage
Dim instance As ComCompatibleVersionAttribute
[AttributeUsageAttribute(AttributeTargets.Assembly, Inherited=false)] 
[ComVisibleAttribute(true)] 
public sealed class ComCompatibleVersionAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Assembly, Inherited=false)] 
[ComVisibleAttribute(true)] 
public ref class ComCompatibleVersionAttribute sealed : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Assembly, Inherited=false) */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class ComCompatibleVersionAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Assembly, Inherited=false) 
ComVisibleAttribute(true) 
public final class ComCompatibleVersionAttribute extends Attribute

Hinweise

Dieses Attribut kann auf Assemblys angewendet werden.

Type Library Exporter-Tool (Tlbexp.exe) verwendet standardmäßig die Versionsnummer einer Assembly, um CLSIDs (Class Identifiers, Klassen-IDs) zu berechnen. Alle öffentlichen, COM-sichtbaren Klassen empfangen immer dann neue CLSIDs, wenn eine neue Assemblyversion exportiert wird.

Sie können das ComCompatibleVersionAttribute-Attribut anwenden, um zu erzwingen, dass alle CLSIDs für Klassen in der aktuellen Version einer Assembly mit den CLSIDs für Klassen in einer früheren Version der Assembly identisch sind. Solange die CLSIDs unverändert bleiben, kann eine ältere COM-Anwendung nach dem Deinstallieren der ursprünglichen Assembly die spätere Version einer kompatiblen Assembly verwenden. Wenn System.Runtime.InteropServices.GuidAttribute auf eine Klasse angewendet wird, um die deren CLSID explizit festzulegen, hat ComCompatibleVersionAttribute keine Auswirkungen.

Die Eigenschaften dieses Attributs werden kombiniert, sodass sie die vier Teile einer Assemblyversion bilden. Geben Sie immer die niedrigste Version an, mit der die aktuelle Assembly abwärtskompatibel ist, sodass mit der betreffenden Version alle CLSIDs in der Assembly berechnet werden.

Beispiel

Das folgende Beispiel veranschaulicht, wie die Assemblyversion 1.0.0.0 in einer Assembly mit einer höheren Versionsnummer angegeben wird. Ungeachtet der neuen Assemblyversion werden alle CLSIDs in der Assembly mit Version 1.0.0.0 anstatt mit der aktuellen Assemblyversion generiert.

Imports System
 Imports System.Runtime.Interop
 Assembly: AssemblyVersion ("3.0.0.0")
 Assembly: ComCompatibleVersionAttribute(1,0,0,0)
 Module MyNamespace
   Public Class MyClass
     ' Insert code.
   End Class
using System;
 using System.Runtime.InteropServices;
 [assembly: AssemblyVersion ("3.0.0.0")
 [assembly: ComCompatibleVersion(1,0,0,0)]
 namespace MyNamespace
 {
   class MyClass
   {
     // Insert code.
   }
 }

Vererbungshierarchie

System.Object
   System.Attribute
    System.Runtime.InteropServices.ComCompatibleVersionAttribute

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1

Siehe auch

Referenz

ComCompatibleVersionAttribute-Member
System.Runtime.InteropServices-Namespace
GuidAttribute

Weitere Ressourcen

Type Library Exporter-Tool (Tlbexp.exe)