Déploiement des personnalisations d’éléments de sites développés

Mise à jour : 2008-01-17

Dans cet article :

  • Déploiement d’éléments de sites développés en utilisant des packages de solutions

  • Déploiement d’éléments de sites développés en utilisant des fonctionnalités

Cet article fournit une aide sur le déploiement des personnalisations d’éléments de sites développés en utilisant Microsoft Office SharePoint Server 2007, et présente notamment des procédures de déploiement, des considérations d’ordre général, ainsi que les meilleures pratiques concernant le déploiement du code personnalisé.

Les éléments de sites développés sont les applications et les fichiers qui fournissent les fonctionnalités d’un site. Il peut s’agir par exemple, d’un flux de travail qui implémente un processus métier ou d’un modèle de site qui permet aux utilisateurs de créer des sites en choisissant une conception particulière. Les éléments de sites développés sont déployés sur les serveurs Web de la batterie de serveurs ou, dans certains cas, sur les serveurs d’application dédiés, au niveau intermédiaire de la batterie de serveur.

Les sections de cet article traitent de la façon d’utiliser les différentes méthodes de déploiement des éléments de sites développés dans Office SharePoint Server 2007 et présentent également les procédures qui décrivent comment importer, exporter et créer des packages de solutions et des fonctionnalités.

Cet article n’aborde pas le déploiement des éléments de sites créés, tels que les pages Web, les feuilles de styles en cascade et les pages de dispositions. Pour plus d’informations sur le déploiement des éléments de sites créés, voir Déploiement de personnalisations d’éléments de sites créés. Pour plus d’informations sur les différences entre les éléments de sites créés et les éléments de sites développés, voir Examen des éléments de site.

Avant de lire cet article, vous devez vous être familiarisé avec les concepts propres à la conception et à la création de sites. Pour plus d’informations, voir À propos de la conception et de la création de sites.

Les procédures indiquées dans cet article sont basées sur les topologies décrites dans l’article Scénarios de personnalisation et peuvent ne pas être exactement conformes à votre environnement.

Ces procédures peuvent nécessiter l’implication de plusieurs rôles différents. Par ailleurs, cet article suppose que des travaux de déploiement planifiés seront utilisés pour migrer le contenu entre certaines couches de la topologie.

NoteRemarque :

Afin d’éliminer les problèmes potentiels de synchronisation, les éléments de sites développés doivent souvent être déployés avant les éléments de sites créés. Pour plus d’informations sur les éléments de sites créés et les éléments de sites développés, voir Examen des éléments de site. Notez également que les packs de langue utilisés sur le serveur source doivent également être installés sur le serveur de destination car, dans le cas contraire, le déploiement du contenu échoue.

Le tableau suivant résume les méthodes de déploiement décrites dans le présent article.

Méthode Remarques

Packages de solutions

Les packages de solutions sont des packages de distribution qui transmettent vos développements Office SharePoint Server 2007 et Windows SharePoint Services 3.0 personnalisés aux serveurs Web ou aux serveurs d’application de votre batterie de serveurs.

Les packages de solutions permettent de :

  • Déployer des éléments de sites développés dans des environnements connectés et non connectés.

  • Déployer des artefacts et des éléments de sites développés dans le même package.

Il est impossible d’utiliser des packages de solutions pour déployer des éléments de sites créés qui ne sont pas des artefacts.

Fonctionnalités

Les fonctionnalités sont des jeux empaquetés de fichiers XML déployés sur les serveurs Web. Les fonctionnalités peuvent être fournies dans des définitions de sites et des solutions, ou bien être activées individuellement dans des sites Office SharePoint Server.

Les fonctionnalités permettent de :

  • Déployer des éléments de sites développés dans des environnements connectés et non connectés.

  • Activer et désactiver des personnalisations sur le site Web de l’administration centrale ou à l’aide de l’outil de ligne de commande Stsadm.

  • Contrôler l’étendue du déploiement.

  • Inclure des fonctionnalités dans un package de solution avec d’autres fonctionnalités, éléments de sites développés et artefacts.

Il est impossible d’utiliser des fonctionnalités pour déployer des éléments de sites créés.

Les sections suivantes présentent chaque méthode de déploiement en détail :

Déploiement d’éléments de sites développés en utilisant des packages de solutions

Dans cette section :

  • Qu’est-ce qu’un package de solution ?

  • Quand utiliser des packages de solutions ?

  • Déployer une solution en utilisant l’administration centrale

  • Créer un package de solution

  • Importer un package de solution à l’aide de l’outil de ligne de commande Stsadm

  • Déployer un package de solution à l’aide de l’outil de ligne de commande Stsadm

Qu’est-ce qu’un package de solution ?

Un package de solution est un package de distribution qui transmet vos développements Office SharePoint Server 2007 et Windows SharePoint Services 3.0 personnalisés aux serveurs Web ou aux serveurs d’application de votre batterie de serveurs. Un package de solution est un fichier CAB, dont le nom de fichier porte l’extension .wsp, et un fichier manifeste. Les packages de solutions peuvent être créés manuellement en utilisant des outils tels que Makecab.exe ou bien être créés avec le Générateur de solutions, une application autonome incluse dans Windows SharePoint Services 3.0 Tools: Visual Studio 2005 Extensions (https://go.microsoft.com/fwlink/?linkid=107267&clcid=0x40C).

Composants pouvant être empaquetés dans une solution :

  • Assemblys .NET Framework qui encapsulent le code qui exécute la solution.

  • Fichiers de déploiement tels que les fichiers de ressources, les fichiers images ou les fichiers de l’application d’assistance.

  • Nouveaux modèles et définitions de sites, listes, bibliothèques, champs, types de contenu, etc. Ces définitions se présentent sous la forme de fichiers XLM CAML.

  • Fonctionnalités qui permettent d’activer et de désactiver du code dans un site Web.

  • Configurations qui doivent être effectuées au niveau du serveur Web. Par exemple, les fichiers Web.config pour l’enregistrement des composants WebPart.

Pour plus d’informations, voir Composants du package de solution.

Quand utiliser des packages de solutions ?

Vous pouvez utiliser des packages de solutions pour transmettre des éléments de sites développés et des artefacts (décrits dans la rubrique Déploiement de personnalisations d’éléments de sites créés). Vous pouvez également utiliser des packages de solutions pour déployer des éléments de sites développés dans des environnements non connectés ou bien, pour enregistrer des éléments de sites développés dans un système de gestion de configurations logicielles.

Vous pouvez utiliser des packages de solutions pour déployer des éléments de sites développés si l’un au moins des facteurs suivants s’applique :

  • **Environnements non connectés  ** Si les batteries de serveurs ne sont pas connectés, vous devez créer un package de solution pour le transfert asynchrone dans la batterie de serveurs d’intégration.

  • Environnements de gestion des configurations logicielles   Vous pouvez consolider vos développements dans un package de solution afin de le transférer dans un système de gestion de configurations logicielles.

  • Inclure des fonctionnalités et d’autres éléments de sites développés   Vous pouvez inclure des fonctionnalités à d’autres personnalisations d’un package de solution. Si certaines de vos personnalisations sont empaquetées en tant que fonctionnalités et que d’autres ne le sont pas, vous pouvez utiliser les packages de solutions comme support de déploiement standard.

  • Remise parallèle des artefacts et des éléments de sites développés   Vous pouvez utiliser un package de solution si vous souhaitez déployer à la fois des artefacts et des éléments de sites développés dans un seul package de déploiement.

  • Déploiements au moyen de scripts   Vous pouvez utiliser des packages de solutions si vous souhaitez écrire un script pour automatiser le déploiement des éléments de sites développés.

Comme illustrés dans les diagrammes de déploiement de l’article Scénarios de personnalisation, vous pouvez utiliser les packages de solutions pour déployer les personnalisations d’éléments de sites développés entre les postes des développeurs et une batterie de serveurs d’intégration ou un système de gestion des configurations logicielles et également entre une batterie de serveurs d’intégration et des postes clients de création de contenu et des batteries de serveurs pilotes ou de production.

Déployer une solution en utilisant l’administration centrale

Vous pouvez déployer des solutions importées depuis le site d’administration centrale. Lorsqu’une solution est importée dans la base de données de solutions au moyen de l’opération Stsadm -Addsolution, tel que décrit à la section Importation d’un package de solution avec l’outil de ligne de commande Stsadm, plus loin dans le présent article, elle doit être déployée sur un site pour qu’il soit possible d’y accéder.

NoteRemarque :

Vous ne pouvez pas importer une solution à partir de la page Gestion des solutions dans l’administration centrale.

La procédure qui suit montre comment déployer une solution importée sur un site, dans une batterie de serveurs.

Déployer une solution dans le site d’administration centrale

  1. Dans la barre de liens supérieure du site d’administration centrale, cliquez sur Opérations.

  2. Dans la page Opérations, dans la section Configuration globale, cliquez sur Gestion des solutions.

  3. Dans la page Gestion des solutions, cliquez sur la solution que vous souhaitez déployer.

  4. Dans la page Propriétés de la solution, cliquez sur Déployer la solution.

  5. Dans la page Déployer la solution, dans la section Déployer quand ?, sélectionnez l’une des options suivantes :

    • Maintenant

    • À une heure spécifiée. Si vous sélectionnez cette option, spécifiez une heure dans les zones de date et d’heure. Sélectionner une heure à laquelle la charge est faible sur les serveurs de destination.

  6. Dans la section Destination du déploiement, dans la liste Application Web spécifique, cliquez sur Toutes les applications Web ou sélectionnez une application Web spécifique.

  7. Cliquez sur OK.

Créer un package de solution

Cette section décrit les méthodes de création des packages de solutions contenant des éléments de sites développés et des artefacts. Plusieurs méthodes existent. Le tableau suivant résume les méthodes de déploiement décrites dans le présent article.

Méthode Description

Manuelle

Pour créer un package de solution manuellement, utilisez l’outil Makecab.exe. Étant donné que Office SharePoint Server 2007 n’inclut aucun outil de création de packages de solutions, cette méthode est celle qui s’applique par défaut.

Il est possible de télécharger l’outil Makecab.exe à partir du Kit de développement logiciel (SDK) Microsoft Cabinet (https://support.microsoft.com/kb/310618/fr).

Générateur de solutions SharePoint

Le générateur de solutions SharePoint est une application autonome capable de convertir certains types de sites Web Office SharePoint Server 2007 ou Windows SharePoint Services 3.0 en projet de définition de site Visual Studio 2005. Si vous utilisez Visual Studio 2005 pour la personnalisation des éléments de sites, cette méthode peut s’avérer utile.

Le générateur de solutions SharePoint peut être téléchargé à partir du site Windows SharePoint Services 3.0 Tools: Visual Studio 2005 Extensions (https://go.microsoft.com/fwlink/?linkid=107267&clcid=0x40C) .

WSPBuilder

WSPBuilder est un outil de ligne de commande libre que vous pouvez utiliser pour automatiser la création des packages de solutions. Cette méthode peut être utile si vous créez régulièrement des packages de solutions et si l’utilisation de logiciels libres ne posent pas de problème dans votre environnement.

L’outil WSPBuilder peut être téléchargé sur le site Codeplex (https://go.microsoft.com/fwlink/?linkid=95141&clcid=0x40C) .

Créer un package de solution manuellement

Les développeurs de solutions Office SharePoint Server 2007 créent souvent des packages de solutions manuellement lorsqu’ils doivent effectuer les opérations suivantes :

  • Déployer des assemblys .NET Framework dans le dossier d’application privé au lieu de les déployer dans le Global Assembly Cache.

  • Ajouter des autorisations de sécurité d’accès du code à la solution qui doit être appliquée au cours du déploiement.

  • Modifier les noms utilisés par défaut pour les dossiers des fonctionnalités.

  • Localiser la solution.

  • Associer des gestionnaires d’événements de fonctionnalités à certains types de solutions Windows SharePoint Services 3.0, telles que les solutions de composant WebPart.

  • Ajouter des ressources (fichiers XML, images, fichiers .dll et assemblys) au package de solution.

Pour créer manuellement un fichier de solution, suivez les étapes ci-dessous :

  1. Rassemblez tous les fichiers de solutions dans un dossier. Il n’existe pas de consigne particulière pour cette opération, mais il est conseillé de séparer les différents types de fichiers de solutions et de les placer dans des sous-dossiers qui leur sont propres.

  2. Créez un fichier manifest.xml qui liste les composants de la solution.

  3. Créez un fichier .ddf qui définit la structure du fichier de solution Windows SharePoint Services 3.0. Ce fichier contient la liste des fichiers de solutions qui déterminent le fichier de sortie .wsp.

  4. Exécutez Makecab.exe avec le fichier .ddf en entrée et le fichier .wsp en sortie.

Ces étapes sont décrites en détail dans la procédure qui suit.

NoteRemarque :

Pour effectuer cette procédure, vous devez utiliser l’outil Makecab.exe qui peut être téléchargé à partir du Kit de développement logiciel (SDK) Microsoft Cabinet (https://support.microsoft.com/kb/310618/fr).

Créer un package de solution manuellement avec l’outil Makecab.exe

  1. Créez un fichier de solution manifest.xml.

    Le manifeste de solution (toujours nommé fichier manifest.xml) est stocké à la racine d’un fichier de solution. Ce fichier définit la liste des fonctionnalités, des définitions de sites, des fichiers de ressources, des fichiers de composants WebPart et des assemblys à traiter. Il ne définit pas la structure du fichier — si les fichiers sont inclus dans une solution mais qu’ils ne sont pas listés dans le fichier manifest.xml, ils ne sont pas traités.

    L’exemple qui suit montre la structure d’un fichier manifest.xml au format XML.

    <?xml version="1.0" encoding="utf-8" ?>

    <Solution xmlns="https://schemas.microsoft.com/sharepoint/"

    SolutionId="{79d1a62e-3627-11db-963e-00e08161165f}"

    ResetWebServer="TRUE">

        <Assemblies>

            <Assembly DeploymentTarget="GlobalAssemblyCache"

    Location="Example.Sharepoint.Webparts\

    Example.SharePoint.WebParts.dll">

                <SafeControls>

                    <SafeControl Assembly="Example.Sharepoint.Webparts,

    Version=1.0.0.0, Culture=Neutral, PublicKeyToken=63cce650e8605f5d"

    Namespace="Example.Sharepoint.Webparts" TypeName="*"/>

                </SafeControls>

            </Assembly>

            <Assembly DeploymentTarget="GlobalAssemblyCache"

    Location="Example.Sharepoint.Timer/Example.Sharepoint.Timer.dll"/>

        </Assemblies>

        <FeatureManifests>

            <FeatureManifest Location="Example.Sharepoint.Timer\Feature.xml"/>

            <FeatureManifest Location="Example.CustomType\Feature.xml"/>

            <FeatureManifest Location="Example.ExampleLibrary\Feature.xml"/>

            <FeatureManifest Location="Example.Columns\Feature.xml"/>

            <FeatureManifest Location="Example.Workflow.ProcessExample\Feature.xml"/>

            <FeatureManifest Location="Example.Workflow.ProvisionExample\Feature.xml"/>

        </FeatureManifests>

        <SiteDefinitionManifests>

            <SiteDefinitionManifest Location="EXAMPLE">

                <WebTempFile Location="1033\XML\WEBTEMPExample.XML"/>

            </SiteDefinitionManifest>

        </SiteDefinitionManifests>

    </Solution>

    Par ailleurs, vous pouvez ajouter un élément DwpFiles pour spécifier des fichiers .webpart ou .dwp ou un élément ResourceFiles pour spécifier des fichiers de ressources, des définitions de sites, des ressources d’application et des stratégies de sécurité d’accès du code.

  2. Annotez éventuellement vos fichiers Feature.xml files avec des balises <ElementFile>.

    Dans la balise <ElementManifests> de votre fichier Feature.xml, ajoutez <ElementFile Location="..."/> pour tous les fichiers ajoutés dans votre fonctionnalité par exemple, les pages ASPX (Active Server Page Extension), telles que les pages allitems.aspx, ou les pages maîtres, etc.

    NoteRemarque :

    Cette étape est requise uniquement si votre solution contient des fonctionnalités.

  3. Créez votre package de solution (fichier .wsp)

    Étant donné que le fichier de solution est essentiellement un fichier CAB, utilisez l’outil Makecab.exe pour créer le package de solution. L’outil Makecab.exe accepte un pointeur vers un fichier .ddf, qui décrit la structure du fichier CAB. Le format d’un fichier .ddf est identique à celui d’un fichier .inf, c’est-à-dire que vous déclarez un en-tête standard puis énumérez, un fichier par ligne, l’ensemble des fichiers en fonction de leur emplacement sur le disque, séparés en fonction de leur emplacement dans le fichier CAB. Par exemple :

    ; .OPTION EXPLICIT    

    ; Generate errors

    .Set CabinetNameTemplate=MySolutionFile.wsp

         .set DiskDirectoryTemplate=CDROM

    ; All cabinets go in a single directory

    .Set CompressionType=MSZIP

    ;** All files are compressed in cabinet files

    .Set UniqueFiles="ON"

    .Set Cabinet=on

    .Set DiskDirectory1=Package build\manifest.xml manifest.xml build\

    MySolutionFile\Feature.xml MySolutionFile\Feature.xml ...

Procédure pas à pas : Génération et déploiement d’un package de solution de composant WebPart personnalisé

Cette section présente un exemple de création et de déploiement d’un package de solution qui contient un composant WebPart personnalisé. Cette procédure pas à pas nécessite l’utilisation de Visual Studio 2005 et de l’outil Makecab.exe.

Office SharePoint Server 2007 permet aux développeurs d’exécuter du code personnalisé lors de l’installation, l’activation, la désactivation ou la désinstallation d’une fonctionnalité. Cela peut s’avérer utile par exemple, lorsqu’un composant WebPart dépend d’une liste de tâches spécifique. Lorsque la fonctionnalité du composant WebPart est activée, le code personnalisé peut contrôler si cette liste de tâches fait partie des listes du site. Si cela n’est pas le cas, le code crée cette liste, puis la supprime lorsque la fonctionnalité est désactivée. Le code personnalisé est encapsulé dans un assembly .NET Framework désigné sous le terme d'assembly du récepteur de fonctionnalité.

Cette procédure suppose qu’un projet de composant WebPart a été créé. Lorsque la fonctionnalité de composant WebPart est installée, activée, désactivée ou désinstallée, Office SharePoint Server déclenche des événements asynchrones. Vous pouvez gérer ces événements dans un assembly .NET Framework personnalisé en créant une classe .NET Framework qui hérite de la classe abstraite Microsoft.SharePoint.SPFeatureReceiver.

Procédure pas à pas : Génération et déploiement d’un package de solution de composant WebPart personnalisé

  1. Créez la classe .NET suivante en C# :

    using System;
    using System.Diagnostics;
    using System.Collections.Generic;
    using System.Text;
    using Microsoft.SharePoint;
    
    namespace MSDN.Samples
    {
        public class MSDNTaskListEventHandler: SPFeatureReceiver
        {
            public override void 
    FeatureActivated(SPFeatureReceiverProperties properties)
            {
                SPSite sitecollection = 
    (SPSite)properties.Feature.Parent;
                SPWeb web = sitecollection.RootWeb;
                try
                {
                    // -- Check if list exists.
                    SPList list = web.Lists["MSDN Tasks"]; 
                }
                catch 
                {
                    // -- If not, create the list.
                    web.Lists.Add("MSDN Tasks", "A custom list", SPListTemplateType.Tasks);
                }
            }
    
            public override void 
    FeatureDeactivating(SPFeatureReceiverProperties properties)
            {
                SPSite sitecollection = (SPSite)properties.Feature.Parent;
                SPWeb web = sitecollection.RootWeb;
                try
                {
                    // -- Check if list is there, and if so, delete it.
                    SPList list = web.Lists["MSDN Tasks"];
                    web.Lists.Delete(list.ID);
                }
                catch (Exception ex)
                {
                }
            }
    
            public override void 
    FeatureInstalled(SPFeatureReceiverProperties properties)
            {
            }
    
            public override void 
    FeatureUninstalling(SPFeatureReceiverProperties properties)
            {
            }
        }
    }
    

    Le codage a pour résultat la création de deux assemblys. Un premier assembly contient le code qui fournit le composant WebPart. Le second contient le code précédent. À la date de publication de cet article, les Extensions Visual Studio pour Windows SharePoint Services 3.0 ne permettent pas de connecter le gestionnaire d’événements au fichier de définition de la fonctionnalité de composant WebPart. Par ailleurs, l’assembly de composant WebPart doit être déployé dans le dossier d’application privé au lieu du Global Assembly Cache. Vous devez, pour cette raison, créer le package de solution manuellement.

    NoteRemarque :

    Pour les étapes qui suivent, vous pouvez organiser les différents fichiers représentant les composants de la solution à votre convenance. Cette organisation peut faire partie de la solution Visual Studio 2005.

  2. Créez un dossier contenant deux sous-dossiers afin de rassembler tous les composants de la solution. Un premier sous-dossier pour stocker les assemblys et un second pour stocker les différents fichiers XML définissant les fonctionnalités. Copiez l’assembly de composant WebPart et l’assembly du gestionnaire d’événements dans le dossier Assemblies.

  3. Créez un sous-dossier sous le dossier Features pour chaque fonctionnalité qui doit être incluse dans la solution SharePoint. Il est question d’une seule fonctionnalité dans la présente procédure pas à pas. Supposez qu’elle est nommée MSDNTaskCreator et que le dossier Features contient un sous-dossier de ce nom. À la racine de ce dossier, ajoutez un fichier Feature.xml qui contient le code XML suivant.

    <Feature  Title="MSDNTaskCreator" 
              Id="55312295-a323-4333-b875-1bbe8ef7fd04" 
              Description="Small Web Part creating a custom task item" 
              Version="1.0.0.0" Scope="Site" Hidden="FALSE" 
              ReceiverAssembly="MSDNFeatureEventhandlers, 
    Version=1.0.0.0, Culture=neutral, PublicKeyToken=5e5a470a5445a8f1" 
              ReceiverClass="MSDN.Samples.MSDNTaskListEventHandler"
              DefaultResourceFile="core" 
    xmlns="https://schemas.microsoft.com/sharepoint/">
      <ElementManifests>
        <ElementManifest Location="elementManifest.xml" />
        <ElementFile Location="MSDNTaskCreator.webpart" />
      </ElementManifests>
    </Feature>
    

    Ce code XML diffère du code XML généré avec les Extensions Visual Studio pour Windows SharePoint Services 3.0 dans la mesure où deux attributs supplémentaires sont ajoutés au fichier Feature.xml :

    • L’attribut ReceiverAssembly contient le nom fort complet de l’assembly .NET Framework qui contient le code du gestionnaire d’événements.

    • L’attribut ReceiverClass stocke le nom fort complet de la classe dans cet assembly.

  4. Créez un fichier manifeste dans le dossier racine. Il s’agit d’un fichier différent de celui généré par les Extensions Visual Studio pour Windows SharePoint Services 3.0. Son contenu est présenté ci-dessous.

    <Solution SolutionId="d63d0395-96a4-449e-83ce-5f7239bbd3ad"

    xmlns="https://schemas.microsoft.com/sharepoint/" >

      <FeatureManifests>

        <FeatureManifest Location="MSDNTaskCreator\Feature.xml" />

      </FeatureManifests>

      <Assemblies>

        <Assembly Location="MSDNTaskCreator.dll"

    DeploymentTarget="WebApplication" >

          <SafeControls>

            <SafeControl Assembly="MSDNTaskCreator, Version=1.0.0.0,

    Culture=neutral, PublicKeyToken=9f4da00116c38ec5"

    Namespace="MSDN.Samples" TypeName="MSDNTaskCreator" Safe="True" />

          </SafeControls>

        </Assembly>

            <Assembly Location="MSDNFeatureEventHandlers.dll"

    DeploymentTarget="GlobalAssemblyCache" />

      </Assemblies>

    </Solution>

    Notez que le nom de la fonctionnalité n’inclut plus de GUID. Le premier élément d’assembly contient un attribut nommé DeploymentTarget et prend la valeur WebApplication au lieu de la valeur GlobalAssemblyCache. Un second élément d’assembly avec la définition de l’assembly .NET Framework contient le code du gestionnaire d’événements à déployer dans le Global Assembly Cache.

  5. Vous êtes maintenant prêt à créer le fichier .ddf nommé, dans le cas présent, .wsp_structure.ddf. Créez-le directement dans le dossier DeploymentFiles. Ajoutez tout d’abord les informations d’en-tête suivantes.

    ;

    ; *** .ddf file for generating SharePoint solution.

    ;

    .OPTION EXPLICIT ; Generate errors

    .Set CabinetNameTemplate=MSDNTaskCreatorWebPart.wsp

    .set DiskDirectoryTemplate=CDROM ; All cabinets go in a single

    directory

    .Set CompressionType=MSZIP;** All files are compressed in cabinet

    files

    .Set UniqueFiles="ON"

    .Set Cabinet=on

    .Set DiskDirectory1=Package

    L’en-tête contient deux parties :

    • CabinetNameTemplate est défini avec le nom du fichier de solution SharePoint (MSDNTaskCreatorWebPart.wsp).

    • DiskDirectory1 prend la valeur Package. Il s’agit du répertoire contenant le fichier .wsp généré.

    La seconde partie du fichier .ddf définit la structure du package.

    ; *** the manifest file

    manifest.xml manifest.xml

    ; *** the feature files

    Features\MSDNTaskCreator\Feature.xml MSDNTaskCreator\Feature.xml

    Features\MSDNTaskCreator\elementManifest.xml MSDNTaskCreator\elementManifest.xml

    Features\MSDNTaskCreator\MSDNTaskCreator.webpart

    MSDNTaskCreator\MSDNTaskCreator.webpart

    ; *** the assemblies

    Assemblies\MSDNTaskCreator.dll MSDNTaskCreator.dll

    Assemblies\MSDNFeatureEventhandlers.dll MSDNFeatureEventhandlers.dll

    Le fichier .ddf est entré pour Makecab.exe, un outil dont vous pouvez disposer en installant le Kit de développement logiciel (SDK) Microsoft Cabinet, tel que décrit précédemment dans la présente section. Vous pouvez également trouver l’outil Makecab.exe dans le Smart Devices SDK (situé par défaut dans \Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SDKTools).

  6. Pour faciliter l’empaquetage et le déploiement, créez un fichier de commande avec le contenu suivant.

    set MakeCabTool=c:\Program Files\Microsoft Visual Studio 8\

    SmartDevices\SDK\SDKTools\Makecab.exe

    set SPAdminTool=%CommonProgramFiles%\Microsoft Shared\

    web server extensions\12\BIN\stsadm.exe

    "%MakeCabTool%" /f wsp_structure.ddf

    "%SPAdminTool%" -o addsolution -filename package\

    MSDNTaskCreatorWebPart.wsp

    "%SPAdminTool%" -o deploysolution -name MSDNTaskCreatorWebPart.wsp

    -immediate -allowGACDeployment -url <URL name>

    Les deux premières lignes correspondent aux paramètres des chemins d’accès aux outils de ligne de commande Makecab et Stsadm. La suivante est la ligne correspondant à la création du package de solution.

    Makecab.exe /f wsp_structure.ddf
    

    L’exécution entraîne l’apparition du fichier MSDNTaskCreatorWebPart.wsp dans le dossier Package. La ligne suivante permet l’ajout de MSDNTaskCreatorWebPart.wsp dans le magasin de solutions stocké sur la batterie de serveurs. Cet ajout se fait par l’exécution de la commande suivante :

    stsadm.exe -o addsolution -filename 
    Package\MSDNTaskCreatorWebPart.wsp
    

    La dernière ligne du fichier de commande correspond au déploiement de la solution dans l’une des collections de sites.

  7. Vous pouvez utiliser le lien Gestion des solutions dans l’onglet Opérations de l’administration centrale pour déployer le package de solution. Vous pouvez aussi exécuter les commandes suivantes à partir d’une invite de commande :

    cd %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\Bin

    stsadm -o deploysolution -name MSDNTaskCreatorWebPart.wsp -local -allowGACDeployment -url <nom URL>

    La fonctionnalité de composant WebPart est maintenant installée, mais non activée.

  8. Pour activer la fonctionnalité, ouvrez la page Fonctionnalités de la collection de sites, puis cliquez sur le bouton Activer en regard du nom de la fonction. Étant donné qu’un code est exécuté lorsque l’événement FeatureActivated se produit, la liste de tâches MSDN est créée. La désactivation de cette fonctionnalité entraîne la suppression de cette liste de tâches du site racine de la collection de sites.

Créer un package de solution en utilisant le générateur de solutions SharePoint

Le générateur de solutions SharePoint est une application autonome capable de convertir certains types de sites Web Office SharePoint Server 2007 ou Windows SharePoint Services 3.0 en projet de définition de site Visual Studio 2005. Le contenu non pris en charge par le générateur de solutions est le suivant :

  • Certains modèles de sites et de listes, tels que les sites Wiki, les portails de publication et les portails de collaboration

  • Les champs de recherche et les types de champs personnalisés

  • Certains paramètres de sites et paramètres de listes

Pour plus d’informations sur le générateur de solutions SharePoint, voir Windows SharePoint Services 3.0 Tools: Visual Studio 2005 Extensions (https://go.microsoft.com/fwlink/?linkid=107267&clcid=0x40C) .

Grâce à l’interface utilisateur du générateur de solutions SharePoint, vous pouvez compiler un site personnalisé dans une solution SharePoint pour le déployer dans une autre batterie de serveurs SharePoint. Certaines personnalisations peuvent ne pas être conservées lorsqu’une solution est importée dans une batterie de serveurs. Les personnalisations susceptibles d’être perdues sont les suivantes :

  • Les colonnes de recherche disparaissent des listes qui les contenaient.

  • Les personnalisations apportées au menu de lancement rapide pour le site sont perdues.

  • Les composants WebPart configurés sur les pages sont perdus.

  • Les récepteurs d’événements d’éléments de listes personnalisés ne sont plus associés aux listes.

Pour plus d’informations, voir Révision des outils et processus.

Réalisation d’actions personnalisées lors de la mise en service du site

Le fichier de solution permet de réaliser des actions personnalisées pendant la mise en service du site. Dans le fichier de solution généré se trouve un dossier nommé Site Provisioning Handler qui contient une classe elle-même nommée SiteProvisioning.cs. Cette classe contient la méthode OnActivated, qui permet d’ajouter du code personnalisé. Cette méthode est appelée lorsqu’un nouveau site est mis en service au moyen de la définition de site. Elle accepte un paramètre du type des propriétés nommées SPFeatureReceiverProperties. Ce paramètre permet de rechercher les objets SPSite et SPWeb en utilisant le code suivant :

SPWeb web;
SPSite site;
if (properties.Feature.Parent is SPWeb)
{
    web = properties.Feature.Parent as SPWeb;
    site = web.Site;
}
Else
{
    site = properties.Feature.Parent as SPSite;
    web = site.RootWeb;
}

Créer un package de solution avec WSPBuilder

Plusieurs outils créés pour les produits et les technologies SharePoint par la communauté des développeurs, et dont le code est en libre accès, sont disponibles sur Internet. Bien que Microsoft ne procède pas au contrôle, à la vérification et à la révision et n’avalise ni ne distribue les projets des sociétés tierces sur ces sites, certains de ces outils peuvent s’avérer utiles pour réaliser des opérations courantes.

WSPBuilder est un outil de ligne de commande qui peut permettre d’automatiser la création des packages de solutions. WSPBuilder parcourt de manière récursive un dossier et crée un package de solution SharePoint, y compris les fichiers manifest.xml et .wsp, en fonction des fichiers présents dans la structure du dossier.

L’outil WSPBuilder peut être téléchargé sur le site Codeplex (https://go.microsoft.com/fwlink/?linkid=95141&clcid=0x40C) .

Importer un package de solution à l’aide de l’outil de ligne de commande Stsadm

Suivez la procédure ci-dessous pour importer un fichier de solution dans la base de données de solutions d’une batterie de serveurs Office SharePoint Server.

ImportantImportant :

Vous devez être membre du groupe Administrateurs sur l’ordinateur sur lequel est exécuté l’outil de ligne de commande Stsadm.

Importer un package de solution à l’aide de l’outil de ligne de commande Stsadm

  1. Sur le serveur de la batterie sur lequel vous souhaitez importer une solution, sur le lecteur sur lequel les produits et technologies SharePoint sont installés, accédez au répertoire dans lequel est stocké l’outil de ligne de commande Stsadm en tapant la commande suivante sur une invite de commande :

    cd %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\Bin

  2. Tapez la commande suivante :

    stsadm -addsolution -filename <nom solution>

La solution est ajoutée à la base de données de solutions de la batterie de serveurs. Pour utiliser la solution, suivez la procédure décrite à la section qui suit dans le présent article. Pour plus d’informations, voir Addsolution : opération Stsadm (Office SharePoint Server).

Déployer un package de solution à l’aide de l’outil de ligne de commande Stsadm

Vous pouvez utiliser l’opération deploysolution pour déployer la solution via une invite de commande.

Déployer un package de solution dans une seule collection de sites

  1. Sur le serveur de la batterie sur lequel vous souhaitez déployer un package de solution importé, sur le lecteur sur lequel les produits et technologies SharePoint sont installés, accédez au répertoire dans lequel est stocké l’outil de ligne de commande Stsadm en tapant la commande suivante :

    cd %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\Bin

  2. Tapez la commande suivante :

    **stsadm –o deploysolution –name <**nom solution > –url <nom URL>

    nom solution est le nom de la solution et nom URL est l’URL de l’application Web vers laquelle déployer la solution importée.

Au lieu de cibler une seule collection de sites, vous pouvez éventuellement suivre la procédure ci-dessous pour déployer votre solution dans chaque collection de sites disponible sur la batterie de serveurs en utilisant le paramètre allcontenturls.

Déployer un package de solution dans toutes les collections de sites

  1. Sur le serveur de la batterie sur lequel vous souhaitez déployer un package de solution importé, sur le lecteur sur lequel les produits et technologies SharePoint sont installés, accédez au répertoire dans lequel est stocké l’outil de ligne de commande Stsadm en tapant la commande suivante :

    cd %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\Bin

  2. Tapez la commande suivante :

    stsadm –o deploysolution –name <nom solution> –allcontenturls [-time] <heure déploiement> [-allowgacdeployment] [-allowcaspolicies]

    nom solution est le nom de la solution.

Par défaut, la solution est déployée immédiatement, mais vous pouvez également planifier son déploiement au moyen du paramètre time.

Les paramètres allowgacdeployment et allowcaspolicies sont importants. Le paramètre allowgacdeployment permet à Office SharePoint Server 2007 de déployer les assemblys dans le Global Assembly Cache. Le paramètre allowcaspolicies permet la création d’un fichier de stratégie de sécurité d’accès du code et son activation dans le fichier Web.config de la collection de sites ciblée.

Pour plus d’informations, voir Deploysolution : opération Stsadm (Office SharePoint Server).

Déploiement d’éléments de sites développés en utilisant des fonctionnalités

Dans cette section :

  • Qu’est-ce qu’une fonctionnalité ?

  • Quand utiliser des fonctionnalités

  • Créer un package de fonctionnalité

  • Déployer une fonctionnalité manuellement

  • Installer et activer une fonctionnalité en utilisant Stsadm

Pour plus d’informations sur les fonctionnalités, voir Working with Features (https://msdn2.microsoft.com/fr-fr/library/ms460318(en-us).aspx) .

Qu’est-ce qu’une fonctionnalité ?

Une fonctionnalité est un conteneur de différentes extensions définies pour Office SharePoint Server 2007 et Windows SharePoint Services 3.0. Ce conteneur se compose d’un ensemble de fichiers XML déployés sur les serveurs Web. Vous pouvez déployer une fonctionnalité dans le cadre d’une définition de site ou d’un package de solution et vous pouvez activer individuellement une fonctionnalité dans les sites Office SharePoint Server.

Les fonctionnalités réduisent la complexité liée à la création de personnalisations de sites simples et offrent la robustesse nécessaire lorsque les mises à niveau sont appliquées à un déploiement. Les fonctionnalités éliminent la nécessité de devoir copier de vastes sections de code pour modifier une simple fonctionnalité et par conséquent, elles réduisent les problèmes de suivi et d’incohérence entre les versions qui peuvent se produire entre serveurs Web frontaux.

Les fonctionnalités facilitent l’activation ou la désactivation de la fonction au cours d’un déploiement, et les administrateurs peuvent facilement transformer le modèle ou la définition d’un site en activant ou désactivant une fonctionnalité particulière sur l’interface utilisateur.

Les fonctionnalités permettent les opérations suivantes :

  • Définir l’étendue de la sémantique pour spécifier où le code personnalisé doit être exécuté.

  • Spécifier si une fonctionnalité doit être installée ou non sur la batterie de serveurs de destination lors de son déploiement

  • Activer ou désactiver les fonctionnalités pour une étendue donnée sans installer ou désinstaller le code

  • Stocker les données requises par une fonctionnalité dans son étendue, dans un dossier de propriétés à l’étendue définie.

  • Définir les bases d’une infrastructure unifiée pour le déploiement distribué de solutions Windows SharePoint Services 3.0 et Office SharePoint Server 2007.

Les éléments qui étaient contenus dans un fichier volumineux de définitions de sites dans Microsoft Office SharePoint Portal Server 2003 sont séparés dans Windows SharePoint Services 3.0. Un élément est une unité atomique d’une fonctionnalité. L’élément Feature est utilisé dans un fichier Feature.xml pour définir une fonctionnalité et spécifier l’emplacement des assemblys, des fichiers, des dépendances ou des propriétés qui prennent en charge la fonctionnalité. Une fonctionnalité inclut un fichier Feature.xml et un nombre illimité de fichiers décrivant des éléments individuels. Un autre élément de fonctionnalité d’un schéma différent est utilisé dans un fichier Onet.xml pour indiquer qu’une fonctionnalité doit être activée dans une définition de site.

Un fichier Feature.xml pointe en général vers un ou plusieurs fichiers XML dont la balise <Elements> de niveau supérieur contient les définitions des éléments qui prennent en charge la fonctionnalité. Les éléments dans Windows SharePoint Services 3.0 correspondent souvent aux anciens nœuds discrets du fichier Onet.xml ou Schema.xml de la version précédente. Il existe plusieurs types d’éléments par exemple, un élément de menu personnalisé ou un gestionnaire d’événements.

Une fonctionnalité peut par exemple fournir une fonctionnalité Mes éléments favoris qui inclut les éléments suivants :

  • Une liste personnalisée qui stocke, par utilisateur, la liste des éléments favoris, laquelle est créée en tant que liste masquée unique par espace de travail lorsque la fonctionnalité est activée.

  • Un élément de menu personnalisé qui est associé à toutes les listes, nommé Ajouter aux favoris, lequel permet d’ajouter un élément à la liste Favoris.

  • Un composant WebPart qui implémente le suivi de l’utilisation et des liens pour afficher les 10 premiers favoris en haut de la liste.

Les éléments de la fonctionnalité peuvent ne pas être tous très utiles, mais lorsque vous activez la fonctionnalité sur un site, ils s’additionnent pour constituer une solution complète.

Pour plus d’informations, voir les ressources dans le kit SDK  :Windows SharePoint Services 3.0

Quand utiliser des fonctionnalités

Vous pouvez utiliser des fonctionnalités pour déployer des éléments de sites développés si l’un au moins des facteurs suivants s’applique :

  • Besoin d’activation et de désactivation   Lorsque vous déployez des personnalisations d’éléments de sites dans une fonctionnalité, vous pouvez installer, activer et désactiver cette fonctionnalité au moyen des opérations de l’outil de ligne de commande Stsadm ou en utilisant le modèle objet. Vous pouvez également activer et désactiver une fonctionnalité par le biais de l’interface utilisateur.

  • Souplesse de l’étendue   Vous pouvez activer une fonctionnalité pour une seule étendue, y compris pour une batterie de serveurs, une application Web, une collection de sites et un site Web.

  • Facilité de distribution des déploiements   Il est simple de déployer une fonctionnalité sur plusieurs batteries de serveurs.

  • Contrôle approfondi via le modèle objet Fonctionnalité   Le modèle objet Fonctionnalité permet de spécifier la liste des fonctionnalités installées dans une étendue donnée et de contrôler si les fonctionnalités sont activées aux niveaux de la batterie de serveurs et des sites.

Comme illustrés dans les diagrammes de déploiement de l’article Scénarios de personnalisation, vous pouvez utiliser les fonctionnalités pour déployer les personnalisations d’éléments de sites développés entre les postes des développeurs et une batterie de serveurs d’intégration et également entre une batterie de serveurs d’intégration et des postes clients de création de contenu et des batteries de serveurs pilotes ou de production.

Créer un package de fonctionnalité

Lorsque vous créez une page Web personnalisée dans Office SharePoint Server 2007, la page ASPX peut appartenir uniquement à la collection de sites racine du serveur qui exécute Office SharePoint Server 2007. Pour créer une page sous une collection de sites qui ne se trouve pas à la racine, vous devez déployer la page Web personnalisée en tant que fonctionnalité SharePoint. Une fonctionnalité SharePoint nécessite deux fichiers XML simples et elle est déployée au moyen de l’utilitaire de ligne de commande Stsadm. Ce processus peut être automatisé au moyen d’un fichier de commande.

NoteRemarque :

Afin d’exécuter l’outil de ligne de commande Stsadm, vous devez accéder au répertoire dans lequel est stocké Stsadm. Pour cela, sur le lecteur sur lequel sont installés les produits et les technologies SharePoint, exécutez la commande suivante : cd %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\Bin

Créer une fonctionnalité personnalisée

  1. Créez un fichier Feature.xml. L’exemple qui suit montre un fichier Feature.xml qui permet d’attribuer un ID unique à la fonctionnalité et de pointer vers le fichier Module.xml.

    <?xml version="1.0"?>
    <Feature Id="8C4DD0CB-5A94-44da-9B7F-E9ED49C2B2DC" Title=
    "Custom Web page"
    Description="This simple example feature adds an ASPX page 
    with a hosted XmlFormView control" 
    Version="1.0.0.0" Scope="Web"
    xmlns="https://schemas.microsoft.com/sharepoint/">
    <ElementManifests>
        <ElementManifest Location="Module.xml"/>
    </ElementManifests>
    </Feature>
    
  2. Créez un fichier Module.xml. L’exemple qui suit montre un fichier Module.xml contenant des informations sur la ou les pages qui font partie de la solution.

    <?xml version="1.0"?>
    <Elements xmlns="https://schemas.microsoft.com/sharepoint/">
        <module name="file" url="" path="">
            <file url="XmlFormViewPage.aspx" type="ghostable"> </file>
        </module>
    </Elements>
    
  3. Modifiez la valeur url du fichier et choisissez le nom de votre page ASPX, puis exécutez les opérations de ligne de commande décrites dans la section Installer et activer une fonctionnalité avec l’outil de ligne de commande Stsadm. Vous pouvez créer un fichier de commande et exécuter ces opérations de ligne de commande en séquence.

  4. Effectuez les actions suivantes :

    1. Créez un dossier sous le dossier Features sur le serveur, d’une façon générale sous %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\TEMPLATE\FEATURES.

    2. Ajoutez votre page ASPX dans ce dossier.

    3. Créez les fichiers Feature.xml et Module.xml en vous basant sur les exemples de la section précédente et ajoutez-les au même emplacement.

Pour installer et activer une fonctionnalité après l’avoir déployée, voir Installer et activer une fonctionnalité avec l’outil de ligne de commande Stsadm plus loin dans cet article.

Déployer une fonctionnalité manuellement

Pour implémenter une fonctionnalité, vous devez ajouter un sous-dossier contenant une définition de fonctionnalité dans le répertoire d’installation de la fonctionnalité (dans l’exemple présent, il s’agit du répertoire, Lecteur_local:\%COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\TEMPLATE\FEATURES). Le sous-dossier Feature contient un fichier Feature.xml qui définit les propriétés de base de la fonctionnalité et énumère les éléments qui y sont liés, tels que les fichiers XML contenant des manifestes d’éléments et tout autre fichier de prise en charge. Un dossier Feature peut contenir uniquement un fichier Feature.xml ou un fichier Feature.xml et un nombre illimité de fichiers d’éléments de prise en charge, y compris des fichiers XML mais également des fichiers .aspx, .htm, .xsn, .resx, .dll et d’autres types de fichiers.

NoteRemarque :

Lorsque vous créez un dossier dans le répertoire Features via l’Explorateur Windows en cliquant avec le bouton droit sur un dossier, en pointant sur Nouveau, puis en cliquant sur Dossier, le nouveau dossier ne possède pas d’autorisations héritées. Si vous déployez une fonctionnalité dans le dossier, certaines pages Windows SharePoint Services 3.0, telles que celles des paramètres de sites ou des affichages en liste, ne sont pas accessibles. Pour résoudre ce problème, créez le nouveau dossier à partir de l’invite de commande avec la commande md.

Après avoir créé le dossier Feature, vous pouvez installer et activer la fonctionnalité en utilisant les opérations de la ligne de commande ou le modèle objet. Vous pouvez également activer une fonctionnalité sur la page Fonctionnalités de la collection de sites ou sur la page Fonctionnalités de la collection de sites ou du site où vous souhaitez activer la fonctionnalité. L’installation d’une fonctionnalité entraîne la diffusion de sa définition et de ses éléments sur toute la batterie de serveurs et son activation entraîne sa mise à disposition dans une étendue particulière.

Installer et activer une fonctionnalité avec l’outil de ligne de commande Stsadm

Les fonctionnalités doivent être installées dans le répertoire 12\Template\Features et chaque fonctionnalité doit être installée dans son propre sous-répertoire. À la racine de ce dossier, un fichier Feature.xml définit le contenu de la fonctionnalité.

NoteRemarque :

Pour exécuter l’outil de ligne de commande Stsadm, vous devez accéder au répertoire où cet outil est stocké. Pour cela, tapez la commande suivante : cd %COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\12\Bin

Vous devez installer les fonctionnalités individuelles avant de pouvoir les utiliser. Pour cela, exécutez la commande suivante à l’invite de commande :

stsadm -o installfeature-filename <chemin relatif> -name <dossier fonctionnalité> [-force]

Pour plus d’informations, voir Installfeature : opération Stsadm (Office SharePoint Server).

Vous devez installer la fonctionnalité mais aussi l’activer avant de pouvoir l’utiliser (excepté si la fonctionnalité a pour étendue la batterie de serveurs, ce qui signifie qu’elle est activée automatiquement).

Pour activer une fonctionnalité, exécutez la commande suivante :

stsadm -o activatefeature -filename <chemin relatif> -name <dossier fonctionnalité> -id <ID fonctionnalité> [-url] <nom URL> [-force]

Pour plus d’informations, voir Activatefeature : opération Stsadm (Office SharePoint Server).

Pour désinstaller une fonctionnalité afin que sa définition ne soit plus disponible dans une batterie de serveurs, vous pouvez utiliser l’opération uninstall. Pour plus d’informations, voir Uninstallfeature : opération Stsadm (Office SharePoint Server).

NoteRemarque :

Vous devez désactiver les fonctionnalités avant de les désinstaller, excepté si leurs étendues sont définies pour les applications Web ou les batteries de serveurs.

Après avoir désinstallé une fonctionnalité, réinitialisez Internet Information Services (IIS) afin que les modifications prennent effet.

Pour désactiver une fonctionnalité et la rendre inactive dans son étendue d’origine sans la désinstaller, vous pouvez utiliser l’opération deactivate. Pour plus d’informations, voir Deactivatefeature : opération Stsadm (Office SharePoint Server).

Télécharger ce livre

Cette rubrique est incluse dans le livre téléchargeable suivant pour une lecture et une impression plus faciles :

Vous trouverez la liste complète des livres disponibles sur Livres téléchargeables pour Office SharePoint Server 2007.

Voir aussi

Concepts

Déployer des personnalisations
Déploiement de personnalisations d’éléments de sites créés
Composants du package de solution