Freigeben über


Bereitstellen von Pack- und Bereitstellungsinformationen in Projektelementen

Alle SharePoint-Projektelemente in Visual Studio verfügen über Eigenschaften, mit denen Sie zusätzliche Daten bereitstellen können, wenn das Projekt in SharePoint bereitgestellt wird. Dort stehen die folgenden Eigenschaften zur Auswahl:

  • Funktionseigenschaften

  • Funktionsempfänger

  • Projektausgabeverweise

  • Einträge für sicheres Steuerelement

    Diese Eigenschaften werden im Eigenschaftenfenster angezeigt.

Funktionseigenschaften

Verwenden Sie die FeatureProperty-Eigenschaft, um Daten anzugeben, die von der Funktion verwendet werden. Funktionseigenschaften geben Werte (gespeichert als Schlüssel-Wert-Paare) an, die beim Bereitstellen in SharePoint in eine Funktion eingeschlossen werden. Nach dem Bereitstellen der Funktion können Sie im Code auf die Eigenschaftswerte zugreifen.

Wenn Sie einem Projektelement einen Funktionseigenschaftswert hinzufügen, wird der Wert als Element im Manifest der Funktion des Elements hinzugefügt. In einem BDC-Modellprojekt (Business Data Connectivity) wird die Funktionseigenschaft ModelFileName beispielsweise wie folgt angezeigt:

<Property Key="ModelFileName" Value="BdcModel1\BdcModel1.bdcm" />

Nachdem Sie einen Funktionseigenschaftswert festgelegt haben, wird er als FeatureProperty-Element in der SPDATA-Datei des Projekts hinzugefügt. Weitere Informationen zum Zugreifen auf die Eigenschaften in SharePoint finden Sie unter der SPFeaturePropertyCollection-Klasse.

Identische Funktionseigenschaftswerte aus allen Projektelementen werden im Funktionsmanifest zusammengeführt. Wenn jedoch zwei unterschiedliche Projektelemente denselben Funktionseigenschaftsschlüssel mit nicht übereinstimmenden Werten angeben, tritt ein Validierungsfehler auf.

Um Funktionseigenschaften direkt der Funktionsdatei (.feature) hinzuzufügen, rufen Sie die Visual Studio-Objektmodellmethode Add für SharePoint auf. Wenn Sie diese Methode verwenden, sollten Sie beachten, dass die gleiche Regel zum Hinzufügen identischer Funktionseigenschaftswerte in Funktionseigenschaften auch für Eigenschaften gilt, die der Funktionsdatei direkt hinzugefügt werden.

Funktionsempfänger

Funktionsempfänger stellen Code bereit, der ausgeführt wird, wenn für die Funktion, in der ein Projektelement enthalten ist, bestimmte Ereignisse auftreten. Sie können beispielsweise Funktionsempfänger definieren, die ausgeführt werden, wenn die Funktion installiert, aktiviert oder aktualisiert wird. Eine Möglichkeit zum Hinzufügen eines Funktionsempfängers besteht darin, ihn direkt einer Funktion hinzuzufügen, wie unter Exemplarische Vorgehensweise: Hinzufügen von Funktionsereignisempfängern beschrieben. Eine weitere Möglichkeit besteht darin, in der Funktionsempfänger-Eigenschaft auf den Klassennamen und die Assembly eines Funktionsempfängers zu verweisen.

Direkte Methode

Wenn Sie einer Funktion einen Funktionsempfänger direkt hinzufügen, wird eine Codedatei unter dem Knoten Funktion in Projektmappen-Explorer platziert. Wenn Sie Ihre SharePoint-Projektmappe erstellen, wird der Code in eine Assembly kompiliert und in SharePoint bereitgestellt. Standardmäßig verweisen die Funktionseigenschaften Empfängerassembly und Empfängerklasse auf den Klassennamen und die Assembly.

Reference-Methode

Eine weitere Möglichkeit zum Hinzufügen eines Funktionsempfängers stellt die Verwendung der Funktionsempfänger-Eigenschaft eines Projektelements dar, in der auf eine Funktionsempfängerassembly verwiesen wird. Der Wert der Funktionsempfänger-Eigenschaft hat zwei Untereigenschaften: Assembly und Klassenname. Für die Assembly muss ihr vollqualifizierter, „starker“ Name verwendet werden, und der Klassenname muss der vollständige Typname sein. Weitere Informationen finden Sie unter Assemblys mit starkem Namen. Nach der Bereitstellung der Projektmappe in SharePoint verwendet die Funktion den Funktionsempfänger, auf den verwiesen wird, um Funktionsereignisse zu behandeln.

Zum Zeitpunkt der Projektmappenerstellung werden die Eigenschaftswerte des Funktionsempfängers in der Funktion und den zugehörigen Projekten zusammengeführt, um die Attribute ReceiverAssembly und ReceiverClass des Funktionselements im Funktionsmanifest der SharePoint-Projektmappendatei (.wsp) festzulegen. Wenn also die Eigenschaftswerte für die Assembly und den Klassennamen eines Projektelements und einer Funktion angegeben sind, müssen die Werte des Projektelements und der Funktionseigenschaft übereinstimmen. Wenn die Werte nicht übereinstimmen, erhalten Sie einen Validierungsfehler. Wenn Sie möchten, dass ein Projektelement auf eine andere Funktionsempfängerassembly als die von der Funktion verwendete verweist, verschieben Sie es in eine andere Funktion.

Wenn Sie auf eine Funktionsempfängerassembly verweisen, die sich noch nicht auf dem Server befindet, müssen Sie auch die Assemblydatei selbst in das Paket aufnehmen. Visual Studio fügt sie nicht für Sie hinzu. Wenn Sie die Funktion bereitstellen, wird die Assemblydatei entweder in den globalen Assemblycache (GAC) des Systems oder in den Ordner „Bin“ im physischen SharePoint-Verzeichnis kopiert. Weitere Informationen finden Sie unter Hinzufügen und Entfernen zusätzlicher Assemblys.

Weitere Informationen zu Funktionsempfängern finden Sie unter Funktionsereignisempfänger und Funktionsereignisse.

Projektausgabeverweise

Die Projektausgabeverweise-Eigenschaft gibt eine Abhängigkeit an, z. B. eine Assembly, die Ihr Projektelement ausführen muss. Angenommen, Ihre Projektmappe enthält ein BDC-Projekt und ein Klassenprojekt. Wenn das BDC-Projekt eine Abhängigkeit von der Assembly aufweist, die vom Klassenprojekt ausgegeben wird, können Sie in der Projektausgabeverweise-Eigenschaft des BDC-Projekts auf die Assembly verweisen. Beim Packen des BDC-Projekts wird die abhängige Assembly in das Paket eingeschlossen.

Projektausgabeverweise sind in der Regel Assemblys, aber in einigen Fällen (z. B. bei Silverlight-Projekten) können sie auch andere Dateitypen sein.

Weitere Informationen finden Sie unter Hinzufügen von Projektausgabeverweisen.

Einträge für sichere Steuerelemente

SharePoint bietet einen Sicherheitsmechanismus, der als sichere Steuerelementeinträge bezeichnet wird und den Zugriff nicht vertrauenswürdiger Benutzer*innen auf bestimmte Steuerelemente beschränkt. Standardmäßig erlaubt SharePoint nicht vertrauenswürdigen Benutzer*innen das Hochladen und Erstellen von ASPX-Seiten auf dem SharePoint-Server. Um zu verhindern, dass diese Benutzer*innen unsicheren Code auf ASPX-Seiten hinzufügen, schränkt SharePoint ihren Zugriff auf sichere Steuerelemente ein. Sichere Steuerelemente sind ASPX-Steuerelemente und Webparts, die als sicher eingestuft wurden und von allen Benutzer*innen auf Ihrer Website verwendet werden können. Weitere Informationen finden Sie unter Schritt 4: Hinzufügen Ihres Webparts zur Liste sicherer Steuerelemente.

Jedes SharePoint-Projektelement in Visual Studio verfügt über eine Eigenschaft namens Einträge für sichere Steuerelemente, die zwei boolesche Untereigenschaften aufweist: Sicher und Sicher vor Skripteinschleusung. Die Eigenschaft „Sicher“ gibt an, ob nicht vertrauenswürdige Benutzer*innen auf ein Steuerelement zugreifen dürfen. Die Eigenschaft „Sicher vor Skripteinschleusung“ gibt an, ob nicht vertrauenswürdige Benutzer*innen die Eigenschaften eines Steuerelements anzeigen und ändern dürfen.

Auf die Einträge für sichere Steuerelemente wird auf Assemblybasis verwiesen. Sie fügen der Assembly eines Projekts Einträge für sichere Steuerelemente hinzu, indem Sie sie in die Einträge für sichere Steuerelemente-Eigenschaft des Projektelements einfügen. Sie können der Assembly eines Projekts Einträge für sichere Steuerelemente auch über die Registerkarte Erweitert im Paket-Designer hinzufügen, wenn Sie dem Paket eine zusätzliche Assembly hinzufügen. Weitere Informationen finden Sie unter Markieren von Steuerelementen als sichere Steuerelemente und Registrieren einer Webpartassembly als sicheres Steuerelement.

XML-Einträge für sichere Steuerelemente

Wenn Sie einem Projektelement oder der Assembly des Projekts einen Eintrag für sichere Steuerelemente hinzufügen, wird ein Verweis im folgenden Format in das Paketmanifest geschrieben:

<Assemblies>
    <Assembly Location="<assembly name>.dll"
      DeploymentTarget="<'GlobalAssemblyCache' or 'WebApplication'">>
        <SafeControls>
            <SafeControl Assembly="<assembly name>.dll" Namespace=
              "<SharePoint project name>" Safe="<true/false>"
                TypeName="<control name>"
                SafeAgainstScript="<true/false>" />
        </SafeControls>
    </Assembly>
</Assemblies>