Freigeben über


Änderungen an Feature.xml

Letzte Änderung: Montag, 12. Juli 2010

Gilt für: SharePoint Foundation 2010

Der neue <UpgradeActions>-Abschnitt in einer Feature.xml-Datei gibt Upgradeaktionen an, die Sie auf ein bestimmtes Feature anwenden können.

Sie können den <UpgradeActions>-Abschnitt am Anfang oder am Ende der Datei Feature.xml innerhalb des Inhalts des <Feature>-Elements platzieren. Dieser Abschnitt ermöglicht es Ihnen, Upgradeaktionen für verschiedene Upgradebereiche anzugeben und eine Liste mit Upgradeaktionen einschließen, die für einen angegebenen Bereich gelten. Durch Upgradedefinitionen wird ein Feature immer bis zu der Version aktualisiert, die im <Feature>-Element deklariert wird.

Der folgende Code zeigt ein Beispiel für einen <UpgradeActions>-Abschnitt, der in einer Feature.xml-Datei definiert werden kann.

<UpgradeActions 
  ReceiverAssembly="MyFeatureReceiver, 
  Version=1.0.0.0, 
  Culture=neutral, 
  PublicKeyToken=2f2197d99d6e2871" 
  ReceiverClass="FeatureReceiver.TestFeatureReceiver">
  <CustomUpgradeAction 
    Name="DeleteField">
    <Parameters>
      <Parameter 
        Name="FieldName">Address3
      </Parameter>
    </Parameters>
  </CustomUpgradeAction>
  <VersionRange 
    BeginVersion="2.0.0.0" 
    EndVersion="5.0.0.0">
      <!-- Here you specify other upgrade actions to apply to Feature instances whose versions are within the range 2.0.0.0 to 5.0.0.0 -->
  </VersionRange>
</UpgradeActions>

Mit dem <UpgradeActions>-Abschnitt wird angegeben, wir eine Featureinstanz aktualisiert wird. Gängige Upgradeszenarien können deklarativ durchgeführt werden, indem einfach die Datei Feature.xml geändert wird, wohingegen es für komplexere Szenarien erforderlich sein kann, die FeatureUpgrading(SPFeatureReceiverProperties, String, IDictionary<String, String>)-Methode zu implementieren, um benutzerdefinierte Logik für das Featureupgrade auszuführen. Informationen zu deklarativen Elementen finden Sie unter "Bereich und Bereitstellung von Elementmanifesten".

Das <UpgradeActions>-Element kann die folgenden untergeordneten Elemente enthalten:

  • <CustomUpgradeAction> - Ermöglicht Ihnen die Ausführung benutzerdefinierten Codes, wenn eine Featureinstanz aktualisiert wird. Wenn eine Aktion in einer Sequenz von Upgradeaktionen angegeben wird, ruft Microsoft SharePoint Foundation die FeatureUpgrading(SPFeatureReceiverProperties, String, IDictionary<String, String>)-Methode synchron mit anderen Upgradeaktionen in der Reihenfolge der Deklaration auf.

  • <VersionRange> - Gibt einen Versionsbereich an, für den die angegebenen Upgradeaktionen gelten.

  • <ApplyElementManifests> - Fügt ein neues Element zu einem vorhandenen Feature hinzu. Wenn ein Feature aktualisiert wird, werden alle nicht deklarativen Elemente bereitgestellt, auf die in den angegebenen Elementmanifesten verwiesen wird.

  • <AddContentTypeField> - Fügt ein neues Feld zu einem vorhandenen bereitgestellten Inhaltstyp hinzu. Verteilt die Änderung vom Website-Inhaltstyp zu allen untergeordneten Listen und Inhaltstypen innerhalb der Website. Beispiel:

    <AddContentTypeField 
      ContentTypeId="0x010100A6F9CE1AFE2A48f0A3E6CB5BB770B0F7" 
      FieldId="{B250DCFD-9310-4e2d-85F2-BE2DA37A57D2}" 
      PushDown="TRUE" />
    

    In den meisten Fällen werden die Werte der Attribute ContentTypeId und FieldId in der Datei Elements.xml angegeben, in der der Inhaltstyp und das Feld definiert werden.

  • <MapFile> - Ermöglicht es Ihnen, eine nicht angepasste Datei zu einem anderen Speicherort auf dem Front-End-Webserver zuzuordnen. Mit den Attributen FromPath und ToPath können Sie eine Datei in einem Feature umbenennen (z. B. <MapFile FromPath=”oldname.gif” ToPath=”newname.gif” />, aber Sie können MapFile auch zum Verschieben einer Datei verwenden. In diesem Fall geben die Attribute FromPath und ToPath Pfade relativ zum Verzeichnis TEMPLATE an. Wenn für ein Feature mit dem Namen "MeinFeature" GIF-Dateien in einem Verzeichnis mit der Bezeichnung "Gifs" installiert sind (z. B. %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES\MeinFeature\Gifs\basketball.gif) und das Verzeichnis in Version 2 in "Images" umbenannt werden soll, können Sie <MapFile FromPath=”Gifs\ball.gif” ToPath=”Images\basketball.gif” /> verwenden, um die Dateien zu verschieben.

Um die Arbeit mit versionsbezogenen Featureabhängigkeiten zu unterstützen, wurde das MinimumVersion-Attribut zum <ActivationDependency>-Element hinzugefügt, das verwendet wird, wenn ein Feature von einem anderen Feature abhängt, das eine Versionsnummer größer oder gleich dem Wert von MinimumVersion aufweisen muss.

Bereich und Bereitstellung von Elementmanifesten

Die folgende Tabelle zeigt die Bereiche, in denen ein bestimmtes Featureelement gültig ist. Es wird außerdem angegeben, ob das Element beim Aktivieren und Deaktivieren des Features bereitgestellt bzw. seine Bereitstellung aufgehoben wird.

Featureelement

Bereich

Bereitstellung

Inhaltstyp

Websitesammlung

Bereitgestellt/Bereitstellung aufgehoben

Inhaltstypbindung

Websitesammlung, Website

Bereitgestellt/Bereitstellung nicht aufgehoben

Steuerelement

Farm, Webanwendung, Websitesammlung, Website

Überhaupt nicht bereitgestellt (deklarativ)

Benutzerdefinierte Aktion

Farm, Webanwendung, Websitesammlung, Website

Überhaupt nicht bereitgestellt (deklarativ)

Gruppe von benutzerdefinierten Aktionen

Farm, Webanwendung, Websitesammlung, Website

Überhaupt nicht bereitgestellt (deklarativ)

Dokumentkonverter

Webanwendung

Bereitgestellt/Bereitstellung aufgehoben

Zuordnungen von Feature und Websitedefinition

Farm, Webanwendung, Websitesammlung

Überhaupt nicht bereitgestellt (deklarativ)

Feld

Websitesammlung

Bereitgestellt/Bereitstellung aufgehoben

Ausblenden benutzerdefinierter Aktion

Farm, Webanwendung, Websitesammlung, Website

Überhaupt nicht bereitgestellt (deklarativ)

Listendefinition

Websitesammlung, Website

Überhaupt nicht bereitgestellt (deklarativ)

Listeninstanz

Websitesammlung, Website

Bereitgestellt/Bereitstellung nicht aufgehoben

Modul

Websitesammlung, Website

Bereitgestellt/Bereitstellung nicht aufgehoben

Empfänger

Websitesammlung, Website

Bereitgestellt/Bereitstellung aufgehoben

Workflowvorlage

Websitesammlung

Überhaupt nicht bereitgestellt (deklarativ)

HinweisHinweis

Die vorherige Tabelle enthält keine Darstellung der folgenden neuen Elementtypen: Cmdlet, UserMigrator, WebPartAdderExtension, WebTemplate und WorkflowAssociation.

Wie in der Tabelle gezeigt, ist das <CustomAction>-Element in allen Bereichen verfügbar: Web (Website), Site (Websitesammlung), WebApplication und Farm (Serverfarm). Es handelt sich um ein deklaratives Element, das nicht bereitgestellt wird und dessen Bereitstellung auch nicht aufgehoben wird. Das bedeutet, dass es direkt aus der Feature-XML-Definition im Arbeitsspeicher zwischengespeichert wird, ohne dass während der Featureaktivierung Bereitstellungslogik ausgeführt wird. Wenn Sie nach dem Aktivieren des Features zu Seiten navigieren, die die benutzerdefinierte Aktion enthalten, wird die benutzerdefinierte Aktion aus diesem Grund aus dem Cache geladen und dann auf dieser Seite angezeigt. Das Field-Element ist nur für den Bereich der Websitesammlung gültig. Es wird bei der Aktivierung bereitgestellt (Erstellen einer Websitespalte), und seine Bereitstellung wird bei der Deaktivierung aufgehoben (Entfernen einer Websitespalte). Das <ListInstance>-Element ist für die Bereiche der Website und der Websitesammlung gültig. Es wird bei der Aktivierung bereitgestellt (Erstellung einer Listeninstanz); bei der Deaktivierung wird die Bereitstellung jedoch nicht aufgehoben (kein Löschen der Listeninstanz).

HinweisHinweis

Deklarative Elemente, die im <ElementManifests>-Abschnitt angegeben sind, werden während der Featureaktivierung bereitgestellt, aber beim Featureupgrade ignoriert. Das Hinzufügen deklarativer Elemente bei einem Upgrade sollte demzufolge durch Platzierung der Elemente im <ApplyElementManifests>-Abschnitt erfolgen. Zum Aktualisieren des Caches müssen Sie iisreset in der Befehlszeile ausführen, bevor das Upgrade aufgerufen wird. Andernfalls müssen Sie ein Upgrade mittels Lösungsbereitstellung vornehmen.