Freigeben über


Importieren von Elementen aus einer vorhandenen SharePoint-Website

Mit der Projektvorlage „SharePoint-Lösungspaket importieren“ können Sie Elemente wie Inhaltstypen und Felder aus vorhandenen SharePoint-Websites in einer neuen Visual Studio-SharePoint-Projektmappe wiederverwenden. Obwohl Sie die meisten importierten Projektmappen ohne Änderung ausführen können, müssen bestimmte Einschränkungen und Probleme berücksichtigt werden, insbesondere, wenn Sie Elemente nach deren Import ändern.

Hinweis

Wenn Sie wiederverwendbare Workflows importieren möchten, verwenden Sie die Projektvorlage „Wiederverwendbaren Workflow importieren“. Weitere Informationen finden Sie unter Richtlinien zum Importieren wiederverwendbarer Workflows.

Unterstützte SharePoint-Projektmappen

Visual Studio 2012 unterstützt den Import von Lösungen, die in SharePoint Foundation und SharePoint Server erstellt wurden, vollständig.

Visual Studio 2012 unterstützt keinen Import von Lösungen, die in den folgenden Anwendungen erstellt wurden:

  • Windows SharePoint Services 3.0

  • Microsoft Office SharePoint Server 2007

  • Visual Studio 2008

  • Microsoft SharePoint Designer 2007

  • Visual Studio 2010

    Obwohl Sie Projektmappen, die mit einer dieser Anwendungen erstellt wurden, häufig erfolgreich importieren können, ist diese Funktionalität weder getestet, noch wird sie unterstützt.

Einschränkungen für den Elementimport

Obwohl die meisten SharePoint-Elemente aus einer vorhandenen WSP-Datei importiert werden können, werden die folgenden Elemente nicht unterstützt und müssen ggf. geändert werden, damit sie ordnungsgemäß funktionieren:

  • BDC-Entitäten

  • Codeworkflow-Zuordnungselemente

  • Codeworkflows

  • Visuelle Webparts (.ascx)

  • Webdienste ( .asmx)

  • Inhaltstypbindungen

  • Ereignisempfänger

  • Listendefinitionen (Vorlagen)

  • Websitedefinitionen

    Wenn Sie eine Lösung aus SharePoint Foundation oder SharePoint Server exportieren, werden diese Elemente automatisch aus der WSP-Datei ausgeschlossen. Es kann aber sein, dass WSP-Dateien, die mit nicht unterstützten Tools erstellt wurden, diese Elemente enthalten. (Siehe „Unterstützte SharePoint-Projektmappen (SharePoint-Lösungen)“ weiter oben in diesem Thema.)

Ablauf beim Importieren einer Projektmappe

Wenn Sie eine Lösung mit der Vorlage „SharePoint-Lösungspaket importieren“ importieren, kopiert Visual Studio den gesamten Inhalt der WSP-Datei und versucht, so viele Zuordnungen und Verweise wie möglich zwischen importierten Elementen und deren Dateien abzustimmen und beizubehalten.

Alle importierten Elemente werden in entsprechende Ordner im Projektmappen-Explorerkopiert. Inhaltstypen werden z. B. im Ordner Inhaltstypen und Listeninstanzen werden unter Listeninstanzenangezeigt. Dateien, die einem importierten Element zugeordnet sind, werden ebenfalls in den Ordner des Elements kopiert. Beispielsweise umfasst eine importierte Listeninstanz ihre Module, Formulare und ASPX-Seiten.

Abhängige Elemente

Wenn Sie im Assistenten „SharePoint-Lösungspaket importieren“ ein Element, aber nicht dessen abhängige Elemente auswählen, werden Sie in einem Meldungsfeld darauf hingewiesen, dass die abhängigen Elemente vor dem Importieren ebenfalls ausgewählt werden müssen.

Was sind Funktionen (Features)?

SharePoint Designer-Benutzern werden möglicherweise unerwartete Dateien, sogenannte Funktionen, in ihren importierten Lösungen im Projektmappen-Explorer sehen. Obwohl Features in der SharePoint Designer-Lösung vorhanden waren, wurden sie in der Ansicht ausgeblendet. Funktionen sind jetzt in Visual Studio sichtbar.

Funktionen sind Container für SharePoint-Elemente. Jede Funktion verwaltet einen Verweis auf jedes Element (etwa Inhaltstypen und Listendefinitionen) das sie enthält. Wenn Sie Ihre Lösung importieren, richtet Visual Studio Funktionen für alle importierten Elemente ein und versucht, die Funktion-zu-Element-Beziehungen für die Dateien beizubehalten. Alle Dateien, deren Verweise nicht aufgelöst werden konnten, werden im Ordner Andere importierte Dateien gespeichert.

Weitere Informationen zu Funktionen finden Sie unter Entwickeln von SharePoint-Lösungen oder Verwenden von Features.

Behandeln von Sonderfällen

In einigen Fällen kann Visual Studio ein Element nicht mit seinen abhängigen Dateien zusammenführen. Alle Dateien, die Visual Studio nicht auflösen konnte, werden im Ordner Andere importierte Dateien angezeigt. Außerdem werden deren DeploymentType -Eigenschaften auf NoDeployment festgelegt, sodass sie nicht mit der Projektmappe bereitgestellt werden.

Wenn Sie z. B. die Listendefinition „ExpenseForms“ importieren, wird eine Listendefinition mit diesem Namen zusammen mit deren Dateien Elements.xml und Schema.xml im Ordner Listendefinitionen im Projektmappen-Explorer angezeigt. Allerdings werden die zugeordneten ASPX- und HTML-Formulare ggf. in einem Ordner namens ExpenseForms im Ordner Andere importierte Dateien angeordnet. Um den Import abzuschließen, verschieben Sie diese Dateien im Projektmappen-Explorer in die Listendefinition „ExpenseForms“, und ändern Sie die DeploymentType -Eigenschaft für jede Datei von NoDeployment in ElementFile.

Wenn Sie Ereignisempfänger importieren, wird die Datei Elements.xml in den richtigen Speicherort kopiert, aber Sie müssen die Assembly manuell in das Projektmappenpaket einschließen, damit sie mit der Projektmappe bereitgestellt wird. Weitere Informationen zur Vorgehensweise finden Sie unter Gewusst wie: Hinzufügen und Entfernen zusätzlicher Assemblys.

Wenn Sie Workflows importieren, werden InfoPath-Formulare in den Ordner Andere importierte Dateien kopiert. Wenn die WSP-Datei eine Webvorlage enthält, wird sie als Startseite im Projektmappen-Explorer festgelegt.

Importieren von Feldern und Eigenschaftenbehältern

Wenn Sie eine Projektmappe importieren, die mehrere Felder hat, werden alle separaten Felddefinitionen im Projektmappen-Explorer in einer einzelnen Elements.xml-Datei in einem Knoten namens Felder zusammengeführt. Ganz ähnlich werden alle Eigenschaftenbehälter in einem Knoten namens PropertyBags in einer Elements.xml-Datei zusammengeführt.

Felder in SharePoint sind Spalten mit einem angegebenen Datentyp, z. B. „Text“, „Boolesch“ oder „Nachschlagen“. Weitere Informationen finden Sie unter Baustein: Spalten und Feldtypen. Mithilfe von Eigenschaftenbehältern können Sie Eigenschaften zu Objekten in SharePoint hinzufügen, wobei alles von einer Farm bis zu einer Liste auf einer SharePoint-Website möglich ist. Eigenschaftenbehälter sind als Hashtabelle mit Eigenschaftennamen und -werten implementiert. Weitere Informationen finden Sie unter Verwalten der SharePoint-Konfiguration oder SharePoint Property Bag Settings.

Löschen von Elementen im Projekt

Die meisten Elemente in SharePoint-Projektmappen haben mindestens ein abhängiges Element. Listeninstanzen sind z. B. von Inhaltstypen abhängig, und Inhaltstypen sind von Feldern abhängig. Nachdem Sie eine SharePoint-Lösung importiert haben, benachrichtigt Visual Studio Sie, wenn Sie ein Element, nicht aber dessen abhängige Elemente in der Projektmappe gelöscht haben, erst dann über Verweisprobleme, wenn Sie versuchen, die Lösung bereitzustellen. Wenn eine importierte Projektmappe beispielsweise eine Listeninstanz beinhaltet, die von einem Inhaltstyp abhängt, und Sie diesen Inhaltstyp löschen, kann bei der Bereitstellung ein Fehler auftreten. Der Fehler tritt auf, wenn das abhängige Element auf dem SharePoint-Server nicht vorhanden ist. Gleiches gilt, wenn ein gelöschtes Element einen zugehörigen Eigenschaftenbehälter hat. Sie sollten dann diese Eigenschaftenbehältereinträge aus der Elements.xml-Datei in PropertyBags löschen. Daher empfiehlt es sich, wenn Sie Elemente aus einer importierten Projektmappe löschen und dann Bereitstellungsfehler auftreten, dass Sie überprüfen, ob es abhängige Elementen gibt, die ebenfalls gelöscht werden müssen.

Wiederherstellen von fehlenden Funktionsattributen

Wenn Projektmappen importiert werden, werden einige optionale Funktionsattribute (Featureattribute) aus dem importierten Funktionsmanifest nicht übernommen. Wenn Sie diese Attribute in der neuen Funktionsdatei wiederherstellen möchten, ermitteln Sie die fehlenden Attribute, indem Sie die ursprüngliche Funktionsdatei mit dem neuen Funktionsmanifest vergleichen, und folgen Sie den Anweisungen im Thema Vorgehensweise: Anpassen einer SharePoint-Funktion.

Erkennung von Bereitstellungskonflikten wird für integrierte Listeninstanzen nicht ausgeführt

Visual Studio führt keine Erkennung von Bereitstellungskonflikten für integrierte Listeninstanzen (dies sind die Standardlisteninstanzen, die mit SharePoint geliefert werden) aus. Die Konflikterkennung wird nicht ausgeführt, damit verhindert wird, dass die integrierten Listeninstanzen in SharePoint überschrieben werden. Die integrierten Listeninstanzen werden weiterhin bereitgestellt bzw. aktualisiert, werden aber niemals gelöscht oder überschrieben. Weitere Informationen finden Sie unter Problembehandlung beim SharePoint-Packen und -Bereitstellen.

Importieren von SharePoint Server 2010-Workflows

Wenn Sie einen in SharePoint Server erstellten Workflow importieren, wird dieser nach der Bereitstellung nicht ordnungsgemäß ausgeführt. Der Workflow wird nicht ordnungsgemäß ausgeführt, da bestimmte Assemblys fehlen und SharePoint Server-Workflows InfoPath-Formulare enthalten, die in Visual Studio-Workflow-Projektmappen derzeit nicht unterstützt werden. Importierte SharePoint Server-Workflows können jedoch ordnungsgemäß ausgeführt werden, nachdem Sie bestimmte Elemente korrigiert haben, so z. B. Hinzufügen von Verweisen auf die SharePoint Server-Assemblys und erneutes Verbinden der InfoPath-Formulare. Weitere Informationen finden Sie unter Importieren von SharePoint Server 2010-Workflows.

Maximale Länge eines Elementnamens

In Visual Studio gilt für Projekt- und Projektelementnamen samt Pfad ein Grenzwert von 260 Zeichen. Wenn Sie eine Projektmappe importieren und ein Elementname diese Grenze überschreitet, wird folgender Fehler angezeigt:

Der angegebene Pfad und/oder Dateiname sind zu lang. Der vollständig qualifizierte Dateiname muss kürzer als 260 Zeichen und der Pfadname kürzer als 248 Zeichen sein.

Wenn dieser Fehler auftritt, wird das Element nicht erstellt. Dieses Problem tritt am häufigsten bei importierten Modulen auf. Um dieses Problem zu vermeiden, gehen Sie wie folgt vor:

  • Geben Sie kurze Namen für das Projekt im Dialogfeld Neues Projekt hinzufügen ein.

  • Erstellen Sie das Projekt in einem Speicherort möglichst nahe am Stammordner, um den Pfad kurz zu halten.

SharePointProductVersion-Attribut

Wenn Sie eine in einer früheren Version von SharePoint, etwa Windows SharePoint Services 3.0 oder Microsoft Office SharePoint Server 2007, erstellte Lösungen importieren, ändern Sie entweder den Wert des „SharePointProductVersion“-Attributs im Paketmanifest in 12.0, oder fügen Sie ein Skript-Manager-Steuerelement in alle importierten Webseiten ein, und belassen Sie die „SharePointProductVersion“ auf 14.0. Andernfalls werden importierte Web Forms (Webformulare) nicht in SharePoint angezeigt.

Hintergrund

Lösungen in SharePoint Foundation und SharePoint Server enthalten ein Attribut namens „SharePointProductVersion“. SharePoint verwendet dieses Attribut in seinen Paketmanifesten, um die SharePoint-Version zu bestimmen, für die die Projektmappe entworfen wurde. Die beiden gültigen Werte sind 12.0 und 14.0. Der Wert 12.0 zeigt an, dass das Element für Windows SharePoint Services 3.0 oder Microsoft Office SharePoint Server 2007 konzipiert ist. Ein Wert von 14.0 zeigt an, dass das Element für SharePoint Foundation oder SharePoint Server konzipiert ist.

Für erhöhte Sicherheit beim Rendern von ASPX-Seiten erfordern SharePoint Foundation und SharePoint Server, dass alle ASPX-Seiten oder Masterseiten ein Skript-Manager-Steuerelement enthalten. Weitere Informationen zum Skript-Manager finden Sie unter Übersicht über das ScriptManager-Steuerelement. Da das Skript-Manager-Steuerelement in Windows SharePoint Services 3.0 und Microsoft Office SharePoint Server 2007 nicht verfügbar war, muss es zu jeder Windows SharePoint Services 3.0- oder Microsoft Office SharePoint Server 2007-Seite hinzugefügt werden, die auf SharePoint Foundation oder SharePoint Server geupgradet wird. Für ASPX-Seiten, für die eine Standardgestaltungsvorlage verwendet wird, ist kein Skript-Manager-Steuerelement erforderlich, da der Standardgestaltungsvorlage bereits ein solches Steuerelement hinzugefügt wurde. ASPX-Seiten, für die keine Masterseite oder eine benutzerdefinierte Masterseite verwendet wird, muss jedoch ein Skript-Manager-Steuerelement hinzugefügt werden, damit sie in SharePoint Foundation oder SharePoint Server funktionieren.

Das Fehlen eines Skript-Manager-Steuerelements kann ein Problem darstellen, wenn Sie ein Windows SharePoint Services 3.0- oder Microsoft Office SharePoint Server 2007-Projekt in Visual Studio 2010 importieren, da das „SharePointProductVersion“-Attribut aller neuen Projekte auf 14.0 festgelegt wird. Wenn Sie ein aktualisiertes Projekt bereitstellen, das ein Webformular ohne Skript-Manager hat, wird das Formular in SharePoint nicht angezeigt.

Weitere Informationen