Partager via


Procédure pas à pas : création d'une étape de déploiement personnalisée pour des projets SharePoint

Lorsque vous déployez un projet SharePoint, Visual Studio exécute une série d'étapes de déploiement dans un ordre spécifique.Visual Studio inclut de nombreuses étapes de déploiement intégrées, mais rien ne vous empêche de créer vos propres étapes de déploiement.

Dans cette procédure pas - à - pas, vous créerez une étape de déploiement personnalisée pour mettre à niveau des solutions sur un serveur SharePoint qui est en cours de exécution.Visual Studio inclut des étapes de déploiement intégrées pour de nombreuses tâches, ces solutions retrait de ou ajoutantes, mais il n'inclut pas une étape de déploiement de mise à jour de solutions.Par défaut, lorsque vous déployez une solution SharePoint, Visual Studio retire d'abord la solution (si elle est déjà déployé) et redéploie ensuite la solution.Pour plus d'informations sur les étapes de déploiement intégrées, consultez Déploiement, publication et mise à niveau de packages de solutions SharePoint.

Cette procédure pas à pas présente les tâches suivantes :

  • Création d'une extension Visual Studio qui exécute deux tâches principales :

    • L'extension définit une étape de déploiement personnalisée pour mettre à niveau des solutions SharePoint.

    • L'extension crée une extension de projet qui définit une nouvelle configuration de déploiement, qui est un ensemble d'étapes de déploiement exécutées pour un projet donné.La nouvelle configuration de déploiement inclut l'étape de déploiement personnalisée et plusieurs étapes de déploiement intégrées.

  • Création de deux commandes SharePoint personnalisées que l'assembly d'extension appelle.Les commandes SharePoint sont des méthodes susceptibles d'être appelées par des assemblys d'extension pour utiliser des API dans le modèle d'objet serveur pour SharePoint.Pour plus d’informations, consultez Appel des modèles d'objet SharePoint.

  • Génération d'un package Visual Studio Extension (VSIX) pour déployer les deux assemblys.

  • Test de la nouvelle étape de déploiement.

Composants requis

Vous avez besoin des composants suivants sur l'ordinateur de développement pour terminer cette procédure pas à pas :

Une connaissance des concepts suivants est utile, mais pas obligatoire, pour effectuer cette procédure pas à pas :

Création du projet

Pour exécuter cette procédure, vous devez créer trois projets :

  • Un projet VSIX pour créer le package VSIX afin de déployer l'extension.

  • Un projet de bibliothèque de classes qui implémente l'extension.Ce projet doit cibler .NET Framework 4,5.

  • Un projet de bibliothèque de classes qui définit les commandes SharePoint personnalisées.Ce projet doit cibler le .NET Framework 3.5.

Démarrez la procédure pas à pas en créant les projets.

Pour créer le projet VSIX

  1. Démarrez Visual Studio.

  2. Dans la barre de menus, sélectionnez Fichier, Nouveau, Projet.

  3. Dans la boîte de dialogue Nouveau projet , développez les nœuds Visual C# ou Visual Basic , puis sélectionnez le nœud Extensibilité .

    [!REMARQUE]

    Le nœud Extensibilité est disponible uniquement si vous installez le kit de développement Visual Studio.Pour plus d'informations, consultez la section des composants requis plus haut dans cette rubrique.

  4. En haut de la boîte de dialogue, choisissez .NET Framework 4,5 dans la liste des versions du .NET Framework.

  5. Sélectionnez le modèle projet VSIX , nommez le projet UpgradeDeploymentStep, puis choisissez le bouton OK .

    Visual Studio ajoute le projet UpgradeDeploymentStep à l'Explorateur de solutions.

Pour créer le projet d'extension

  1. Dans Explorateur de solutions, ouvrez le menu contextuel du nœud de solution UpgradeDeploymentStep, choisissez Ajouter, puis choisissez Nouveau projet.

    [!REMARQUE]

    Dans les projets Visual Basic, le nœud de la solution s'affiche dans l'Explorateur de solutions à condition d'avoir activé la case à cocher Toujours afficher la solution dans la General, Projects and Solutions, Options Dialog Box.

  2. Dans la boîte de dialogue Nouveau projet , développez les nœuds Visual C# ou Visual Basic , puis sélectionnez le nœud Fenêtres .

  3. En haut de la boîte de dialogue, choisissez .NET Framework 4,5 dans la liste des versions du .NET Framework.

  4. Choisissez le modèle de projet Bibliothèque de classes , nommez le projet DeploymentStepExtension, puis choisissez le bouton OK .

    Visual Studio ajoute le projet DeploymentStepExtension à la solution et ouvre le fichier de code Class1 par défaut.

  5. Supprimez le fichier de code Class1 du projet.

Pour créer le projet SharePointCommands

  1. Dans Explorateur de solutions, ouvrez le menu contextuel du nœud de solution UpgradeDeploymentStep, choisissez Ajouter, puis choisissez Nouveau projet.

    [!REMARQUE]

    Dans les projets Visual Basic, le nœud de solution s'affiche seulement dans l'Explorateur de solutions si la case à cocher Toujours afficher la solution est activée dans la General, Projects and Solutions, Options Dialog Box.

  2. Dans la boîte de dialogue Nouveau projet , développez Visual C# ou Visual Basic, puis sélectionnez le nœud Fenêtres .

  3. En haut de la boîte de dialogue, choisissez .NET Framework 3.5 dans la liste des versions du .NET Framework.

  4. Choisissez le modèle de projet Bibliothèque de classes , nommez le projet SharePointCommands, puis choisissez le bouton OK .

    Visual Studio ajoute le projet SharePointCommands à la solution et ouvre le fichier de code Class1 par défaut.

  5. Supprimez le fichier de code Class1 du projet.

Configuration des projets

Avant d'écrire le code pour créer l'étape de déploiement personnalisée, vous devez ajouter des fichiers de code et des références d'assembly, et vous devez configurer les projets.

Pour configurer le projet DeploymentStepExtension

  1. Dans le projet DeploymentStepExtension , ajoutez deux fichiers de code portant les noms suivants :

    • UpgradeStep

    • DeploymentConfigurationExtension

  2. Ouvrez le menu contextuel du projet DeploymentStepExtension, puis choisissez Ajouter une référence.

  3. Sous l'onglet framework , activez la case à cocher pour l'assembly System.ComponentModel.Composition.

  4. Sous l'onglet Extensions , activez la case à cocher pour l'assembly Microsoft.VisualStudio.SharePoint, puis choisissez le bouton OK .

Pour configurer le projet SharePointCommands

  1. Dans le projet SharePointCommands , ajoutez un fichier de code appelé Commands.

  2. Dans Explorateur de solutions, ouvrez le menu contextuel du nœud de projet SharePointCommands , puis choisissez Ajouter une référence.

  3. Sous l'onglet Extensions , activez les cases à cocher pour les assemblys suivants, puis cliquez sur le bouton OK

    • Microsoft.SharePoint

    • Microsoft.VisualStudio.SharePoint.Commands

Définition de l'étape de déploiement personnalisée

Créez une classe qui définit l'étape de déploiement de mise à niveau.Pour définir l'étape de déploiement, la classe implémente l'interface IDeploymentStep.Implémentez cette interface chaque fois que vous souhaitez définir une étape de déploiement personnalisée.

Pour définir l'étape de déploiement personnalisée

  • Dans le projet DeploymentStepExtension , ouvrez le fichier de code UpgradeStep, puis collez le code suivant dans ce fichier.

    [!REMARQUE]

    Après avoir ajouté ce code, le projet comportera des erreurs de compilation, mais ils partiront lorsque vous ajoutez le code dans les étapes ultérieures.

    Imports System
    Imports Microsoft.VisualStudio.SharePoint
    Imports Microsoft.VisualStudio.SharePoint.Deployment
    Imports System.ComponentModel.Composition
    
    Namespace Contoso.DeploymentSteps.Upgrade
    
        ' Export attribute: Enables Visual Studio to discover and load this deployment step.
        ' DeploymentStep attribute: Specifies the ID for this new deployment step.
        ' UpgradeStep class: Defines a new deployment step that can be used to upgrade a solution 
        '     on a SharePoint site.
        <Export(GetType(IDeploymentStep))> _
        <DeploymentStep("Contoso.DeploymentSteps.UpgradeSolution")> _
        Friend Class UpgradeStep
            Implements IDeploymentStep
    
            Private solutionName As String
            Private solutionFullPath As String
    
            Private Sub Initialize(ByVal stepInfo As IDeploymentStepInfo) _
                Implements IDeploymentStep.Initialize
                stepInfo.Name = "Upgrade solution"
                stepInfo.StatusBarMessage = "Upgrading solution..."
                stepInfo.Description = "Upgrades the solution on the local machine."
            End Sub
    
            ' Specifies whether the solution can be upgraded.
            Private Function CanExecute(ByVal context As IDeploymentContext) As Boolean _
                Implements IDeploymentStep.CanExecute
    
                ' SharePoint returns all the installed solutions names in lower case.
                solutionName = (context.Project.Package.Model.Name & ".wsp").ToLower()
                solutionFullPath = context.Project.Package.OutputPath
                Dim solutionExists As Boolean = _
                    context.Project.SharePointConnection.ExecuteCommand(Of String, Boolean)(
                    "Contoso.Commands.IsSolutionDeployed", solutionName)
    
                ' Throw exceptions in error cases because deployment cannot proceed.
                If context.Project.IsSandboxedSolution = True Then
                    Dim sandboxMessage As String = "Cannot upgrade the solution. Upgrade deployment " & _
                        "configuration does not support Sandboxed solutions."
                    context.Logger.WriteLine(sandboxMessage, LogCategory.Error)
                    Throw New InvalidOperationException()
                ElseIf solutionExists = False Then
                    Dim notDeployedMessage As String = String.Format("Cannot upgrade the solution. The IsSolutionDeployed " & _
                        "command cannot find the following solution on the SharePoint site: {0}.", solutionName)
                    context.Logger.WriteLine(notDeployedMessage, LogCategory.Error)
                    Throw New InvalidOperationException(notDeployedMessage)
                End If
    
                ' Execute step and continue with deployment.
                Return True
            End Function
    
            Private Sub Execute(ByVal context As IDeploymentContext) _
                Implements IDeploymentStep.Execute
                context.Logger.WriteLine("Upgrading solution: " & solutionName, LogCategory.Status)
                context.Project.SharePointConnection.ExecuteCommand("Contoso.Commands.UpgradeSolution", _
                    solutionFullPath)
            End Sub
    
        End Class
    End Namespace
    
    using System;
    using Microsoft.VisualStudio.SharePoint;
    using Microsoft.VisualStudio.SharePoint.Deployment;
    using System.ComponentModel.Composition;
    
    namespace Contoso.DeploymentSteps.Upgrade
    {
        // Enables Visual Studio to discover and load this deployment step.
        [Export(typeof(IDeploymentStep))]
    
        // Specifies the ID for this new deployment step.
        [DeploymentStep("Contoso.DeploymentSteps.UpgradeSolution")]
    
        // Defines a new deployment step that can be used to upgrade a solution on a SharePoint site.
        internal class UpgradeStep : IDeploymentStep
        {
            private string solutionName;
            private string solutionFullPath;
    
            // Implements IDeploymentStep.Initialize.
            public void Initialize(IDeploymentStepInfo stepInfo)
            {
                stepInfo.Name = "Upgrade solution";
                stepInfo.StatusBarMessage = "Upgrading solution...";
                stepInfo.Description = "Upgrades the solution on the local machine.";
            }
    
            // Implements IDeploymentStep.CanExecute. Specifies whether the solution can be upgraded.
            public bool CanExecute(IDeploymentContext context)
            {
                // SharePoint returns all the installed solutions names in lower case.
                solutionName = (context.Project.Package.Model.Name + ".wsp").ToLower();
                solutionFullPath = context.Project.Package.OutputPath;
                bool solutionExists = context.Project.SharePointConnection.ExecuteCommand<string, bool>(
                    "Contoso.Commands.IsSolutionDeployed", solutionName);
    
                // Throw exceptions in error cases because deployment cannot proceed.
                if (context.Project.IsSandboxedSolution)
                {
                    string sandboxMessage = "Cannot upgrade the solution. The upgrade deployment configuration " +
                        "does not support Sandboxed solutions.";
                    context.Logger.WriteLine(sandboxMessage, LogCategory.Error);
                    throw new InvalidOperationException(sandboxMessage);
                }
                else if (!solutionExists)
                {
                    string notDeployedMessage = string.Format("Cannot upgrade the solution. The IsSolutionDeployed " +
                        "command cannot find the following solution: {0}.", solutionName);
                    context.Logger.WriteLine(notDeployedMessage, LogCategory.Error);
                    throw new InvalidOperationException(notDeployedMessage);
                }
    
                // Execute step and continue with deployment.
                return true;
            }
    
            // Implements IDeploymentStep.Execute.
            public void Execute(IDeploymentContext context)
            {
                context.Logger.WriteLine("Upgrading solution: " + solutionName, LogCategory.Status);
                context.Project.SharePointConnection.ExecuteCommand("Contoso.Commands.UpgradeSolution",
                    solutionFullPath);
            }
        }
    }
    

Création d'une configuration de déploiement qui inclut l'étape de déploiement personnalisée

Créez une extension de projet pour la nouvelle configuration de déploiement, qui inclut plusieurs étapes de déploiement intégrées et la nouvelle étape de déploiement de mise à jour.En créant cette extension, vous aidez les développeurs SharePoint à utiliser l'étape de déploiement de mise à niveau dans les projets sharepoint.

Pour créer la configuration de déploiement, la classe implémente l'interface ISharePointProjectExtension.Implémentez cette interface chaque fois que vous souhaitez créer une extension de projet SharePoint.

Pour créer la configuration de déploiement

  1. Dans le projet DeploymentStepExtension , ouvrez le fichier de code DeploymentConfigurationExtension, puis collez le code suivant dans ce fichier.

    Imports Microsoft.VisualStudio.SharePoint
    Imports Microsoft.VisualStudio.SharePoint.Deployment
    Imports System.ComponentModel.Composition
    
    Namespace Contoso.DeploymentSteps.Upgrade
    
        ' Export attribute: Enables Visual Studio to discover and load this project-level extension.
        ' DeploymentConfigurationExtension class: Defines a project-level extension. The extension creates 
        '     a new deployment configuration that includes the upgrade deployment step.
        <Export(GetType(ISharePointProjectExtension))> _
        Friend Class DeploymentConfigurationExtension
            Implements ISharePointProjectExtension
    
            Private Sub Initialize(ByVal projectService As ISharePointProjectService) _
                Implements ISharePointProjectExtension.Initialize
                AddHandler projectService.ProjectInitialized, AddressOf ProjectInitialized
            End Sub
    
            ' Creates the new deployment configuration.
            Private Sub ProjectInitialized(ByVal Sender As Object, ByVal e As SharePointProjectEventArgs)
                Dim deploymentSteps As String() = New String() _
                {
                    DeploymentStepIds.PreDeploymentCommand, _
                    DeploymentStepIds.RecycleApplicationPool, _
                    "Contoso.DeploymentSteps.UpgradeSolution", _
                    DeploymentStepIds.PostDeploymentCommand _
                }
                Dim retractionSteps As String() = New String() _
                {
                    DeploymentStepIds.RecycleApplicationPool, _
                    DeploymentStepIds.RetractSolution
                }
                Dim configuration As IDeploymentConfiguration = e.Project.DeploymentConfigurations.Add( _
                    "Upgrade", deploymentSteps, retractionSteps)
                configuration.Description = "This is the upgrade deployment configuration"
            End Sub
    
        End Class
    End Namespace
    
    using Microsoft.VisualStudio.SharePoint;
    using Microsoft.VisualStudio.SharePoint.Deployment;
    using System.ComponentModel.Composition;
    
    namespace Contoso.DeploymentSteps.Upgrade
    {
        // Enables Visual Studio to discover and load this project-level extension.
        [Export(typeof(ISharePointProjectExtension))]
    
        // Defines a project-level extension. The extension creates a new deployment configuration that includes the
        // upgrade deployment step.
        internal class DeploymentConfigurationExtension : ISharePointProjectExtension
        {
            // Implements ISharePointProjectExtension.Initialize.
            public void Initialize(ISharePointProjectService projectService)
            {
                projectService.ProjectInitialized += ProjectInitialized;
            }
    
            // Creates the new deployment configuration.
            private void ProjectInitialized(object sender, SharePointProjectEventArgs e)
            {
                string[] deploymentSteps = new string[] 
                {
                    DeploymentStepIds.PreDeploymentCommand,
                    DeploymentStepIds.RecycleApplicationPool,
                    "Contoso.DeploymentSteps.UpgradeSolution",
                    DeploymentStepIds.PostDeploymentCommand 
                };
    
                string[] retractionSteps = new string[] 
                {
                    DeploymentStepIds.RecycleApplicationPool,
                    DeploymentStepIds.RetractSolution                
                };
    
                IDeploymentConfiguration configuration = e.Project.DeploymentConfigurations.Add(
                    "Upgrade", deploymentSteps, retractionSteps);
                configuration.Description = "This is the upgrade deployment configuration";
            }
        }
    }
    

Création de commandes SharePoint personnalisées

Créez deux commandes personnalisées faisant appel au modèle d'objet serveur pour SharePoint.L'une des deux commandes a pour objet de déterminer si une solution est déjà déployée et l'autre de mettre à niveau une solution.

Pour définir les commandes SharePoint

  • Dans le projet SharePointCommands , ouvrez le fichier de code commands, puis collez le code suivant dans ce fichier.

    Imports System
    Imports System.IO
    Imports Microsoft.SharePoint
    Imports Microsoft.SharePoint.Administration
    Imports Microsoft.VisualStudio.SharePoint.Commands
    
    Namespace Contoso.DeploymentSteps.Upgrade
    
        Friend Class Commands
    
            ' Determines whether the specified solution has been deployed to the local SharePoint server.
            <SharePointCommand("Contoso.Commands.IsSolutionDeployed")> _
            Private Function IsSolutionDeployed(ByVal context As ISharePointCommandContext, ByVal solutionName As String) As Boolean
                Dim solution As SPSolution = SPFarm.Local.Solutions(solutionName)
                Return solution IsNot Nothing
            End Function
    
            ' Upgrades the specified solution to the local SharePoint server.
            <SharePointCommand("Contoso.Commands.UpgradeSolution")> _
            Private Sub UpgradeSolution(ByVal context As ISharePointCommandContext, ByVal fullWspPath As String)
                Dim solution As SPSolution = SPFarm.Local.Solutions(Path.GetFileName(fullWspPath))
                If solution Is Nothing Then
                    Throw New InvalidOperationException("The solution has not been deployed.")
                End If
                solution.Upgrade(fullWspPath)
            End Sub
    
        End Class
    End Namespace
    
    using System;
    using System.IO;
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.Administration;
    using Microsoft.VisualStudio.SharePoint.Commands;
    
    namespace Contoso.DeploymentSteps.Upgrade
    {
        internal class Commands
        {
            // Determines whether the specified solution has been deployed to the local SharePoint server.
            [SharePointCommand("Contoso.Commands.IsSolutionDeployed")]
            private bool IsSolutionDeployed(ISharePointCommandContext context, string solutionName)
            {
                SPSolution solution = SPFarm.Local.Solutions[solutionName];
                return solution != null;
            }
    
            // Upgrades the specified solution to the local SharePoint server.
            [SharePointCommand("Contoso.Commands.UpgradeSolution")]
            private void UpgradeSolution(ISharePointCommandContext context, string fullWspPath)
            {
                SPSolution solution = SPFarm.Local.Solutions[Path.GetFileName(fullWspPath)];
    
                if (solution == null)
                {
                    throw new InvalidOperationException("The solution has not been deployed.");
                }
    
                solution.Upgrade(fullWspPath);
            }
        }
    }
    

Point de contrôle

À ce stade de la procédure pas à pas, les projets comportent le code complet de l'étape de déploiement personnalisée ainsi que les commandes SharePoint.Générez- les vous assurer qu'ils compiler sans erreur.

Pour générer des projets

  1. Dans Explorateur de solutions, ouvrez le menu contextuel du projet DeploymentStepExtension , puis choisissez Générer.

  2. Ouvrez le menu contextuel du projet SharePointCommands , puis choisissez Générer.

Création d'un package VSIX pour déployer l'extension

Pour déployer l'extension, utilisez le projet VSIX inclus dans votre solution pour créer un package VSIX.D'abord, configurez le package VSIX en modifiant le fichier source.extension.vsixmanifest du projet VSIX.Créez le package VSIX lors de la génération de la solution.

Pour configurer et créer le package VSIX

  1. Dans Explorateur de solutions, sous le projet UpgradeDeploymentStep , ouvrez le menu contextuel du fichier source.extension.vsixmanifest , puis choisissez Ouvrir.

    Visual Studio ouvre le fichier dans l'éditeur de manifeste.Le fichier source.extension.vsixmanifest est la base du fichier extension.vsixmanifest que tous les packages VSIX ont besoin.Pour plus d'informations sur ce fichier, consultez Référence de schéma d'extensions VSIX.

  2. Dans la zone nom de produit , entrez Étape de déploiement de mise à niveau des projets sharepoint.

  3. Dans la zone Author , entrez Contoso.

  4. Dans la zone Description , entrez Fournit une étape de déploiement de mise à niveau personnalisée qui peut être utilisée dans les projets sharepoint.

  5. Dans l'onglet Composants de l'éditeur, choisissez le bouton Nouveau .

    La boîte de dialogue ajoutez le nouveau ressource s'affiche.

  6. Dans la liste Type , choisissez Microsoft.VisualStudio.MefComponent.

    [!REMARQUE]

    Cette valeur correspond à l'élément MefComponent dans le fichier extension.vsixmanifest.Cet élément spécifie le nom d'un assembly d'extension dans le package VSIX.Pour plus d’informations, consultez MEFComponent Element.

  7. Dans la liste Source , choisissez un projet dans la solution actuelle.

  8. Dans la liste Projet , choisissez DeploymentStepExtension, puis choisissez le bouton OK .

  9. Dans l'éditeur de manifeste, choisissez le bouton Nouveau de nouveau.

    La boîte de dialogue ajoutez le nouveau ressource s'affiche.

  10. Dans la liste Type , entrez SharePoint.Commands.v4.

    [!REMARQUE]

    Cet élément désigne l'extension personnalisée à inclure à l'extension Visual Studio.Pour plus d’informations, consultez Élément de ressource (schéma VSX).

  11. Dans la liste Source , choisissez un projet dans la solution actuelle.

  12. Dans la liste Projet , choisissez SharePointCommands, puis choisissez le bouton OK .

  13. Dans la barre de menus, sélectionnez Générer, Générer la solution, puis vérifiez que les compilations de solution sans erreur.

  14. Assurez -vous que le dossier de sortie de la génération pour le projet UpgradeDeploymentStep contient maintenant le fichier d'UpgradeDeploymentStep.vsix.

    Par défaut, le dossier de sortie de la génération est le dossier ..\bin\Debug sous le dossier qui contient votre fichier projet.

Préparation en vue de tester l'étape de déploiement de mise à niveau

Pour tester l'étape de déploiement de mise à niveau, vous devez commencer par déployer un exemple de solution au niveau du site SharePoint.Commencez par déboguer le projet d'extension dans l'instance expérimentale de Visual Studio.Créez ensuite une définition de liste et une instance de liste à utiliser pour tester l'étape de déploiement, et déployez ensuite les au site SharePoint.Ensuite, modifiez la définition de liste et l'instance de liste et redéployez- les pour montrer comment le processus de déploiement par défaut remplace les solutions sur le site SharePoint.

À une étape ultérieure de cette procédure, vous modifierez la définition de liste et l'instance de liste, puis vous les améliorerez sur le site SharePoint.

Pour démarrer le débogage de l'extension

  1. Redémarrez Visual Studio avec les informations d'identification d'administration, puis ouvrez la solution UpgradeDeploymentStep.

  2. Dans le projet DeploymentStepExtension, ouvrez le fichier de code UpgradeStep, puis ajoutez un point d'arrêt sur la première ligne de code dans les méthodes d' CanExecute et d' Execute .

  3. Commencez à déboguer en choisissant la touche F5 ou, dans la barre de menus, choisissant Déboguer, Démarrer le débogage.

  4. Visual Studio installe l'extension sous %UserProfile%\AppData\Local\Microsoft\VisualStudio\11.0Exp\Extensions\Contoso\Upgrade Deployment Step for SharePoint Projects\1.0 and starts an experimental instance of Visual Studio.Vous allez tester l'étape de déploiement de mise à niveau dans cette instance de Visual Studio.

Pour créer un projet SharePoint à une définition de liste et une instance de liste

  1. Dans l'instance expérimentale de Visual Studio, dans le menu, choisissez Fichier, Nouveau, Projet.

  2. Dans la boîte de dialogue Nouveau projet , développez le nœud Visual C# ou le nœud Visual Basic , développez le nœud SharePoint , puis sélectionnez le nœud 2010 .

  3. En haut de la boîte de dialogue, vérifiez que .NET Framework 3.5 apparaît dans la liste des versions du .NET Framework.

    Les projets pour Microsoft SharePoint Foundation 2010 et Microsoft SharePoint Server 2010 requièrent cette version du .NET Framework.

  4. Dans la liste des modèles de projet, choisissez Projet SharePoint 2010, nommez le projet EmployeesListDefinition, puis choisissez le bouton OK .

  5. Dans Assistant personnalisation de SharePoint, entrez l'URL du site que vous souhaitez utiliser pour le débogage.

  6. Sous Ce qui est le niveau de confiance de la solution SharePoint, sélectionnez la case d'option Déployer une solution de batterie .

    [!REMARQUE]

    L'étape de déploiement de mise à niveau ne prend pas en charge les solutions bac à sable (sandbox).

  7. Choisissez le bouton Terminer .

    Visual Studio crée le projet d'EmployeesListDefinition.

  8. Ouvrez le menu contextuel du projet d'EmployeesListDefinition, choisissez Ajouter, puis choisissez Nouvel élément.

  9. Dans la boîte de dialogue ajoutez le nouvel élément – EmployeesListDefinition , développez le nœud SharePoint , puis sélectionnez le nœud 2010 .

  10. Choisissez le modèle d'élément liste , nommez l'élément liste des employés, puis choisissez le bouton Ajouter .

    L'assistant personnalisation de SharePoint s'affiche

  11. Dans la page Choisissez des paramètres de liste , vérifiez les paramètres suivants, puis choisissez le bouton Terminer :

    1. liste des employés apparaît dans la zone Le nom voulez -vous afficher pour votre liste ? .

    2. La case d'option Créez une liste personnalisable basée sur : est sélectionné.

    3. Valeur par défaut (vide) est sélectionnez dans la liste Créez une liste personnalisable basée sur : .

    Visual Studio crée l'élément de liste d'employés avec une colonne de titre et un seul l'instance vide et ouvrez le concepteur de liste.

  12. Dans le concepteur de liste, sous l'onglet colonnes , sélectionnez la ligne Tapez un nouveau ou existant nom de colonne , puis ajoutez les colonnes suivantes dans la liste nom complet de colonne :

    1. Prénom

    2. Société

    3. Téléphone d'entreprise

    4. Courrier électronique

  13. Enregistrez tous les fichiers, puis fermez le concepteur de liste.

  14. Dans Explorateur de solutions, développez le nœud liste des employés , puis développez le nœud enfant Instance de liste d'employés .

  15. Dans le fichier Elements.xml, remplacez la valeur par défaut XML dans ce fichier par le code XML suivant.Ce code XML change le nom de la liste par Employé et ajoute des informations pour un employé qui a nommé Julien Hallert.

    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="https://schemas.microsoft.com/sharepoint/">
      <ListInstance Title="Employees"
                    OnQuickLaunch="TRUE"
                    TemplateType="10000"
                    Url="Lists/Employees"
                    Description="Simple list to test upgrade deployment step">
        <Data>
          <Rows>
            <Row>
              <Field Name="Title">Hance</Field>
              <Field Name="FirstName">Jim</Field>
              <Field Name="Company">Contoso</Field>
              <Field Name="Business Phone">555-555-5555</Field>
              <Field Name="E-Mail">jim@contoso.com</Field>
            </Row>
          </Rows>
        </Data>
      </ListInstance>
    </Elements>
    
  16. Enregistrez et fermez le fichier Elements.xml.

  17. Ouvrez le menu contextuel du projet d'EmployeesListDefinition, puis choisissez Ouvrir ou Propriétés.

    Le concepteur de propriétés s'ouvre.

  18. Sous l'onglet SharePoint , désactivez la case à cocher retrait automatique après le débogage , et enregistrent les propriétés.

Pour déployer la définition de liste et l'instance de liste

  1. Dans Explorateur de solutions, sélectionnez le nœud de projet EmployeesListDefinition .

  2. Dans la fenêtre Propriétés, assurez-vous que la propriété Configuration de déploiement active a la valeur Par défaut.

  3. Choisissez la touche F5 ou, dans la barre de menus, sélectionnez Déboguer, Démarrer le débogage.

  4. Vérifiez que le projet est correctement généré, que le navigateur web s'ouvre au site SharePoint, que l'élément listes dans la barre de lancement rapide inclut la nouvelle liste Employé , et que la liste Employé inclut l'entrée à Julien Hallert.

  5. Fermez le navigateur web.

Pour modifier la définition de liste et l'instance de liste et les redéployer

  1. Dans le projet d'EmployeesListDefinition, ouvrez le fichier Elements.xml qui est un enfant de l'élément de projet Instance de liste d'employés .

  2. Supprimez l'élément Data et ses enfants pour supprimer de la liste l'entrée correspondant à Julien Hallert.

    Lorsque vous avez terminé, le fichier doit contenir le code XML suivant.

    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="https://schemas.microsoft.com/sharepoint/">
      <ListInstance Title="Employees"
                    OnQuickLaunch="TRUE"
                    TemplateType="10000"
                    Url="Lists/Employees"
                    Description="Simple list to test upgrade deployment step">
      </ListInstance>
    </Elements>
    
  3. Enregistrez et fermez le fichier Elements.xml.

  4. Ouvrez le menu contextuel pour l'élément de projet liste des employés , puis choisissez Ouvrir ou Propriétés.

  5. Dans le concepteur de liste, choisissez Affichages tableau.

  6. Dans la liste Colonnes sélectionnées , choisissez Pièces jointes, puis choisissez < clé à déplacer que colonne dans la liste Colonnes disponibles .

  7. Répétez l'étape précédente pour déplacer la colonne Téléphone d'entreprise de la liste Colonnes sélectionnées à la liste Colonnes disponibles .

    Cela permet d'éliminer ces champs de la vue par défaut de la liste Employees sur le site SharePoint.

  8. Commencez à déboguer en choisissant la touche F5 ou, dans la barre de menus, choisissant Déboguer, Démarrer le débogage.

  9. Assurez-vous que la boîte de dialogue Conflits de déploiement s'ouvre.

    Cette boîte de dialogue apparaît lorsque les tests de Visual Studio déployer une solution (instance de liste) à un site SharePoint auquel cette solution a déjà été déployée.Cette boîte de dialogue ne s'affiche pas lorsque vous exécutez l'étape de déploiement de mise à niveau à une étape ultérieure de cette procédure.

  10. Dans la boîte de dialogue conflits de déploiement , sélectionnez la case d'option Résolution automatique .

    Visual Studio supprime l'instance de liste du site SharePoint, déploie l'élément de liste dans le projet, puis ouvre le site SharePoint.

  11. Dans la section listes de la barre de lancement rapide, cliquez sur la liste Employé , puis vérifiez les informations suivants :

    • Les colonnes Pièces jointes et téléphone domicile ne s'affichent pas dans cette vue de la liste.

    • La liste est vide.En effet, lorsque vous avez utilisé la configuration de déploiement Par défaut pour redéployer la solution, la liste Employees a été remplacée par la nouvelle liste vide dans votre projet.

Test de l'étape de déploiement

Vous êtes maintenant prêt à tester l'étape de déploiement de mise à niveau.Tout d'abord, ajoutez un élément à l'instance de liste dans SharePoint.Puis remplacez la définition de liste et l'instance de liste, améliorez- les sur le site SharePoint, et les vérifiez que l'étape de déploiement de mise à niveau ne remplace pas le nouvel élément.

Pour ajouter manuellement un élément à la liste

  1. Dans le ruban du site SharePoint, sous l'onglet répertoriez les outils , choisissez éléments tableau.

  2. Dans le groupe Nouveau , choisissez Nouvel élément.

    Sinon, vous pouvez choisir le lien Ajouter un nouvel élément dans la liste d'éléments lui-même.

  3. Dans la fenêtre employés – nouvel élément , dans la zone Titre , entrez Gestionnaire de fonctionnalités.

  4. Dans la zone prénom , entrez Andy.

  5. Dans la zone société , tapez Contoso.

  6. Choisissez le bouton Enregistrer , vérifiez que le nouvel élément s'affiche dans la liste, puis fermez le navigateur web.

    À une étape ultérieure de cette procédure, vous utiliserez cet élément pour vérifier que l'étape de déploiement de mise à niveau ne remplace pas le contenu de cette liste.

Pour tester l'étape de déploiement de mise à niveau

  1. Dans l'instance expérimentale de Visual Studio, dans Explorateur de solutions, ouvrez le menu contextuel du nœud de projet EmployeesListDefinition , puis choisissez Propriétés.

    L'éditeur/concepteur de propriétés s'ouvre.

  2. Sous l'onglet SharePoint , affectez à la propriété configuration de déploiement active à mise à jour.

    Cette configuration de déploiement personnalisée inclut la nouvelle étape de déploiement de mise à jour.

  3. Ouvrez le menu contextuel pour l'élément de projet liste des employés , puis choisissez Propriétés ou Ouvrir.

    L'éditeur/concepteur de propriétés s'ouvre.

  4. Sous l'onglet Affichages , choisissez la colonne courrier électronique , puis choisissez la clé < pour déplacer que colonne de la liste Colonnes sélectionnées à la liste Colonnes disponibles .

    Cela permet d'éliminer ces champs de la vue par défaut de la liste Employees sur le site SharePoint.

  5. Commencez à déboguer en choisissant la touche F5 ou, dans la barre de menus, choisissant Déboguer, Démarrer le débogage.

  6. Assurez-vous que le code dans l'autre instance de Visual Studio s'immobilise sur le point d'arrêt que vous avez défini précédemment dans la méthode CanExecute.

  7. Choisissez la touche F5 à nouveau ou, dans la barre de menus, sélectionnez Déboguer, Continuer.

  8. Assurez-vous que le code s'immobilise sur le point d'arrêt défini précédemment dans la méthode Execute.

  9. Choisissez la touche F5 ou, dans la barre de menus, sélectionnez Déboguer, Continuer un temps final.

    Le navigateur web s'ouvre le site SharePoint.

  10. Dans la section listes de la zone de lancement rapide, cliquez sur la liste Employé , puis vérifiez les informations suivants :

    • L'élément que vous manuellement avez ajouté précédemment (pour Andy, le gestionnaire de fonctions) est toujours dans la liste.

    • Les colonnes Téléphone d'entreprise et adresse de messagerie ne s'affichent pas dans cette vue de la liste.

    La configuration du déploiement Mettre à niveau modifie l'instance de liste Employees existante sur le site SharePoint.Si vous aviez utilisé la configuration de déploiement Par défaut au lieu de la configuration Mettre à niveau, un conflit de déploiement se produirait.Visual Studio résoudrait le conflit en substituant la liste Employé , et l'élément pour Andy, le gestionnaire de fonctionnalités, est supprimé.

Nettoyage de l'ordinateur de développement

Une fois le test de l'étape de déploiement de mise à niveau terminée, supprimez l'instance de liste et la définition de liste du site SharePoint et éliminez l'extension de l'étape de déploiement dans Visual Studio.

Pour supprimer l'instance de liste du site SharePoint

  1. Ouvrez la liste Employé sur le site SharePoint, si la liste n'est pas déjà ouvert.

  2. Dans le ruban du site SharePoint, sélectionnez l'onglet répertoriez les outils , puis choisissez liste tableau.

  3. Dans le groupe Paramètres , sélectionnez l'élément Paramètres de liste .

  4. Sous autorisations et gestion, choisissez la commande supprimez cette liste , choisissez OK pour confirmer que vous souhaitez envoyer à la Corbeille la liste, puis fermez le navigateur web.

Pour supprimer le définition de liste du site SharePoint

  • Dans l'instance expérimentale de Visual Studio, dans le menu, choisissez Générer, Retrait.

    Visual Studio retire la définition de liste du site SharePoint.

Pour désinstaller l'extension

  1. Dans l'instance expérimentale de Visual Studio, dans le menu, choisissez Outils, Extensions et mises à jour.

    La boîte de dialogue Extensions et mises à jour s'ouvre.

  2. Dans la liste d'extensions, choisissez Étape de déploiement de mise à niveau des projets sharepoint, puis sélectionnez la commande Désinstaller .

  3. Dans la boîte de dialogue qui apparaît, sélectionnez oui pour confirmer que vous voulez désinstaller l'extension, puis choisissez Redémarrez maintenant pour terminer la désinstallation.

  4. Fermez les deux instances de Visual Studio (l'instance expérimentale et l'instance de Visual Studio dans laquelle la solution UpgradeDeploymentStep est ouverte).

Voir aussi

Concepts

Extension de la création de packages et du déploiement SharePoint