Sdílet prostřednictvím


Eigenschaftentypen (C++)

Aktualisiert: November 2007

Das Projektsystem unterteilt Eigenschaften in zwei Typen: einfache Eigenschaften und zusammengesetzte Eigenschaften. Jeder Eigenschaftentyp wird bei der Eigenschaftenvererbung anders ausgewertet.

Einfache Eigenschaften

Einfache Eigenschaften sind alle Eigenschaften, die keine Zeichenfolge darstellen (Integer-, Boolean- und Enum-Eigenschaften) und einen einzelnen Wert enthalten. Wenn sie auf der lokalen Ebene definiert werden (aktuelle Dateikonfiguration, Konfiguration oder aktuelles Eigenschaftenblatt) wird der geerbte Wert ignoriert. Ein Beispiel für eine solche Eigenschaft ist WarnAsError, durch die der Schalter /WX für CL.EXE festgelegt wird.

Zusammengesetzte Eigenschaften

Bei zusammengesetzten Eigenschaften handelt es sich immer um String-Eigenschaften. Der Wert einer auf einer beliebigen Ebene definierten zusammengesetzten Eigenschaft wird mit dem Wert des übergeordneten Elements verkettet. Ein Beispiel für eine zusammengesetzte Eigenschaft ist AdditionalIncludeDirectories, durch die der Schalter /I für CL.EXE festgelegt wird. Path-Eigenschaften bieten ein gutes Beispiel für zusammengesetzte Eigenschaften, da sie eine Liste mit mehreren Werten und keinen einzelnen Wert umfassen.

Es gibt drei spezielle integrierte Makros, durch die die Eigenschaftenauswertung für zusammengesetzte Eigenschaften gesteuert wird:

  • $(Inherit)
    Legt fest, dass die Eigenschaftenwerte des übergeordneten Elements ausgewertet und die Ergebnisse anstelle des Makros eingefügt werden sollen. Wenn für $(Inherit) keine bestimmte Position angegeben wurde, wird angenommen, dass es sich am Ende des Werts befindet. Die Werte des übergeordneten Elements werden folglich an den Wert auf der aktuellen Ebene angefügt.

  • $(NoInherit)
    Legt fest, dass die Eigenschaftenwerte des übergeordneten Elements nicht an die zusammengesetzte Eigenschaft angefügt werden. Das $(Inherit)-Makro wird durch das $(NoInherit)-Makro überschrieben.

  • $(StopEvaluating)
    Legt fest, dass die Auswertung für eine bestimmte zusammengesetzte Eigenschaft, in der das Makro vorkommt, unterbrochen wird. Alle Werte nach dem $(StopEvaluating)-Makro gehen verloren.

Siehe auch

Konzepte

Auswertung geerbter Eigenschaften

Eigenschaftenvererbung