Procédure pas à pas : Créer une extension de projet SharePointWalkthrough: Create a SharePoint project extension

Cette procédure pas à pas illustre comment créer une extension pour les projets SharePoint.This walkthrough illustrates how to create an extension for SharePoint projects. Vous pouvez utiliser une extension de projet pour répondre aux événements au niveau du projet tels que quand un projet est ajouté, supprimé ou renommé.You can use a project extension to respond to project-level events such as when a project is added, deleted, or renamed. Vous pouvez également ajouter des propriétés personnalisées ou répondre lorsqu’une valeur de propriété change.You can also add custom properties or respond when a property value changes. Contrairement aux extensions d’élément de projet, les extensions de projet ne peut pas être associées à un type de projet SharePoint particulier.Unlike project item extensions, project extensions cannot be associated with a particular SharePoint project type. Lorsque vous créez une extension de projet, l’extension de charge tout type de projet SharePoint est ouvert dans Visual StudioVisual Studio.When you create a project extension, the extension loads when any kind of SharePoint project is opened in Visual StudioVisual Studio.

Dans cette procédure pas à pas, vous allez créer une propriété booléenne personnalisée qui est ajoutée à un projet SharePoint créé dans Visual StudioVisual Studio.In this walkthrough, you will create a custom Boolean property that is added to any SharePoint project created in Visual StudioVisual Studio. Lorsque la valeur True, la nouvelle propriété ajoute ou mappe un dossier de ressources d’Images à votre projet.When set to True, the new property adds, or maps, an Images resource folder to your project. Lorsque la valeur False, le dossier Images est supprimé, s’il existe.When set to False, the Images folder is removed, if it exists. Pour plus d’informations, consultez Comment : ajouter et supprimer des dossiers mappés.For more information, see How to: add and remove mapped folders.

Cette procédure pas à pas décrit les tâches suivantes :This walkthrough demonstrates the following tasks:

  • Création d’un Visual StudioVisual Studio extension pour les projets SharePoint qui effectue les opérations suivantes :Creating a Visual StudioVisual Studio extension for SharePoint projects that does the following:

    • Ajoute une propriété de projet personnalisés à la fenêtre Propriétés.Adds a custom project property to the Properties window. La propriété s’applique à un projet SharePoint.The property applies to any SharePoint project.

    • Utilise le modèle objet de projet SharePoint pour ajouter un dossier mappé à un projet.Uses the SharePoint project object model to add a mapped folder to a project.

    • Utilise le Visual StudioVisual Studio (DTE) pour supprimer un dossier mappé à partir du projet de modèle d’objet automation.Uses the Visual StudioVisual Studio automation object model (DTE) to delete a mapped folder from the project.

  • Création d’un Visual StudioVisual Studio package d’Extension (VSIX) pour déployer l’assembly d’extension de la propriété de projet.Building a Visual StudioVisual Studio Extension (VSIX) package to deploy the project property's extension assembly.

  • Débogage et test de la propriété de projet.Debugging and testing the project property.

PrérequisPrerequisites

Vous avez besoin des composants suivants sur l’ordinateur de développement pour effectuer cette procédure pas à pas :You need the following components on the development computer to complete this walkthrough:

Créer les projetsCreate the projects

Pour effectuer cette procédure pas à pas, vous devez créer deux projets :To complete this walkthrough, you must create two projects:

  • Un projet VSIX pour créer le package VSIX pour déployer l’extension de projet.A VSIX project to create the VSIX package to deploy the project extension.

  • Un projet de bibliothèque de classes qui implémente l’extension de projet.A class library project that implements the project extension.

    Démarrer la procédure pas à pas en créant les projets.Start the walkthrough by creating the projects.

Pour créer le projet VSIXTo create the VSIX project

  1. Démarrez Visual StudioVisual Studio.Start Visual StudioVisual Studio.

  2. Dans la barre de menus, choisissez Fichier > Nouveau > Projet.On the menu bar, choose File > New > Project.

  3. Dans le nouveau projet boîte de dialogue, développez le Visual C# ou Visual Basic nœuds, puis choisissez le extensibilité nœud.In the New Project dialog box, expand the Visual C# or Visual Basic nodes, and then choose the Extensibility node.

    Note

    Ce nœud est disponible uniquement si vous installez le SDK Visual Studio.This node is available only if you install the Visual Studio SDK. Pour plus d’informations, consultez la section conditions préalables plus haut dans cette rubrique.For more information, see the prerequisites section earlier in this topic.

  4. En haut de la boîte de dialogue, choisissez .NET Framework 4.5 dans la liste des versions du .NET Framework, puis choisissez le projet VSIX modèle.At the top of the dialog box, choose .NET Framework 4.5 in the list of versions of the .NET Framework, and then choose the VSIX Project template.

  5. Dans le nom , entrez ProjectExtensionPackage, puis choisissez le OK bouton.In the Name box, enter ProjectExtensionPackage, and then choose the OK button.

    Le ProjectExtensionPackage projet s’affiche dans l’Explorateur de solutions.The ProjectExtensionPackage project appears in Solution Explorer.

Pour créer le projet d’extensionTo create the extension project

  1. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le nœud de solution, choisissez ajouter, puis choisissez nouveau projet.In Solution Explorer, open the shortcut menu for the solution node, choose Add, and then choose New Project.

  2. Dans le nouveau projet boîte de dialogue, développez le Visual C# ou Visual Basic nœuds, puis choisissez Windows.In the New Project dialog box, expand the Visual C# or Visual Basic nodes, and then choose Windows.

  3. En haut de la boîte de dialogue, choisissez .NET Framework 4.5 dans la liste des versions du .NET Framework, puis choisissez le bibliothèque de classes modèle de projet.At the top of the dialog box, choose .NET Framework 4.5 in the list of versions of the .NET Framework, and then choose the Class Library project template.

  4. Dans le nom , entrez ProjectExtension, puis choisissez le OK bouton.In the Name box, enter ProjectExtension, and then choose the OK button.

    Visual StudioVisual Studio Ajoute le ProjectExtension projet à la solution et ouvre le fichier de code Class1 par défaut. adds the ProjectExtension project to the solution and opens the default Class1 code file.

  5. Supprimer le fichier de code Class1 du projet.Delete the Class1 code file from the project.

Configurer le projetConfigure the project

Avant d’écrire du code pour créer l’extension de projet, ajoutez les fichiers de code et des références d’assembly au projet d’extension.Before you write code to create the project extension, add code files and assembly references to the extension project.

Pour configurer le projetTo configure the project

  1. Ajouter un fichier de code nommé CustomProperty au projet ProjectExtension.Add a code file that's named CustomProperty to the ProjectExtension project.

  2. Ouvrez le menu contextuel pour le ProjectExtension de projet, puis choisissez ajouter une référence.Open the shortcut menu for the ProjectExtension project, and then choose Add Reference.

  3. Dans le Gestionnaire de références - CustomProperty boîte de dialogue, sélectionnez le Framework nœud et sélectionnez la case à cocher en regard des assemblys System.ComponentModel.Composition et System.Windows.Forms.In the Reference Manager - CustomProperty dialog box, choose the Framework node, and then select the check box next to the System.ComponentModel.Composition and System.Windows.Forms assemblies.

  4. Choisissez le Extensions nœud, sélectionnez la case à cocher en regard des assemblys Microsoft.VisualStudio.SharePoint et EnvDTE, puis choisissez le OK bouton.Choose the Extensions node, select the check box next to the Microsoft.VisualStudio.SharePoint and EnvDTE assemblies, and then choose the OK button.

  5. Dans l’Explorateur de solutions, sous le références dossier pour le ProjectExtension de projet, choisissez EnvDTE.In Solution Explorer, under the References folder for the ProjectExtension project, choose EnvDTE.

  6. Dans le propriétés fenêtre, de modifier le incorporer les Types Interop propriété False.In the Properties window, change the Embed Interop Types property to False.

Définir la nouvelle propriété de projet SharePointDefine the new SharePoint project property

Créez une classe qui définit l’extension de projet et le comportement de la nouvelle propriété de projet.Create a class that defines the project extension and the behavior of the new project property. Pour définir la nouvelle extension de projet, la classe implémente le ISharePointProjectExtension interface.To define the new project extension, the class implements the ISharePointProjectExtension interface. Implémentez cette interface chaque fois que vous souhaitez définir une extension pour un projet SharePoint.Implement this interface whenever you want to define an extension for a SharePoint project. En outre, ajouter le ExportAttribute à la classe.Also, add the ExportAttribute to the class. Cet attribut permet de Visual StudioVisual Studio pour détecter et charger votre ISharePointProjectExtension implémentation.This attribute enables Visual StudioVisual Studio to discover and load your ISharePointProjectExtension implementation. Passer le ISharePointProjectExtension type au constructeur de l’attribut.Pass the ISharePointProjectExtension type to the attribute's constructor.

Pour définir la nouvelle propriété de projet SharePointTo define the new SharePoint project property

  1. Collez le code suivant dans le fichier de code CustomProperty.Paste the following code into the CustomProperty code file.

    Imports System
    Imports System.Linq
    Imports System.ComponentModel
    Imports System.ComponentModel.Composition
    Imports System.Windows.Forms
    Imports Microsoft.VisualStudio.SharePoint
    Imports EnvDTE
    
    Namespace Contoso.SharePointProjectExtensions.MapImagesFolder
    
        ' Export attribute: Enables Visual Studio to discover and load this extension.
        ' MapImagesFolderProjectExtension class: Adds a new Map Images Folder property to any SharePoint project.
        <Export(GetType(ISharePointProjectExtension))> _
        Public Class MapImagesFolderProjectExtension
            Implements ISharePointProjectExtension
    
            Public Sub Initialize(ByVal projectService As ISharePointProjectService) Implements ISharePointProjectExtension.Initialize
                AddHandler projectService.ProjectPropertiesRequested, AddressOf Me.projectService_ProjectPropertiesRequested
            End Sub
    
            Private Sub projectService_ProjectPropertiesRequested(ByVal sender As Object, ByVal e As SharePointProjectPropertiesRequestedEventArgs)
                Dim propertiesObject As CustomProjectProperties = Nothing
    
                ' If the properties object already exists, get it from the project's annotations.
                If False = e.Project.Annotations.TryGetValue(propertiesObject) Then
                    ' Otherwise, create a new properties object and add it to the annotations.
                    propertiesObject = New CustomProjectProperties(e.Project)
                    e.Project.Annotations.Add(propertiesObject)
                End If
    
                e.PropertySources.Add(propertiesObject)
            End Sub
        End Class
    
        Public Class CustomProjectProperties
            Private sharePointProject As ISharePointProject = Nothing
            Private Const MapImagesFolderPropertyDefaultValue As Boolean = False
            Private Const MapImagesFolderPropertyId = "ContosoMapImagesFolderProperty"
    
            Public Sub New(ByVal myProject As ISharePointProject)
                sharePointProject = myProject
            End Sub
    
            ' Represents the new boolean property MapImagesFolder.
            ' True = Map an Images folder to the project if one does not already exist; otherwise, do nothing.
            ' False = Remove the Images folder from the project, if one exists; otherwise, do nothing.
            <DisplayName("Map Images Folder")> _
            <DescriptionAttribute("Specifies whether an Images folder is mapped to the SharePoint project.")> _
            <DefaultValue(MapImagesFolderPropertyDefaultValue)> _
            Public Property MapImagesFolder As Boolean
                Get
                    Dim propertyStringValue As String = String.Empty
    
                    ' Try to get the current value from the .user file; if it does not yet exist, return a default value.
                    If Not sharePointProject.ProjectUserFileData.TryGetValue(MapImagesFolderPropertyId, propertyStringValue) Then
                        Return MapImagesFolderPropertyDefaultValue
                    Else
                        Return CBool(propertyStringValue)
                    End If
                End Get
    
                Set(ByVal value As Boolean)
                    If value Then
                        If Not ImagesMappedFolderInProjectExists(sharePointProject) Then
                            ' An Images folder is not mapped to the project, so map one.
                            Dim mappedFolder As IMappedFolder = sharePointProject.MappedFolders.Add(MappedFolderType.Images)
                            sharePointProject.ProjectService.Logger.WriteLine( _
                                mappedFolder.Name & " mapped folder added to the project.", LogCategory.Status)
                        End If
                    ElseIf (ImagesMappedFolderInProjectExists(sharePointProject) AndAlso UserSaysDeleteFile()) Then
                        ' An Images folder is mapped to the project and the user wants to remove it.
                        DeleteFolder()
                    End If
    
                    sharePointProject.ProjectUserFileData(MapImagesFolderPropertyId) = value.ToString()
                End Set
            End Property
    
            Private Function ImagesMappedFolderInProjectExists(ByVal sharePointProject As ISharePointProject) As Boolean
                Dim returnValue As Boolean = False
                For Each folder As IMappedFolder In sharePointProject.MappedFolders
                    ' Check to see if an Images folder is already mapped.
                    If (folder.FolderType = MappedFolderType.Images) Then
                        returnValue = True
                    End If
                Next
                Return returnValue
            End Function
    
            Private Function UserSaysDeleteFile() As Boolean
                ' Ask the user whether they want to delete the Images folder.
                Dim returnValue As Boolean = False
                If (MessageBox.Show("Do you want to delete the Images folder from the project?", _
                    "Delete the Images folder?", MessageBoxButtons.YesNo) = DialogResult.Yes) Then
                    returnValue = True
                End If
                Return returnValue
            End Function
    
            Private Sub DeleteFolder()
                ' The Visual Studio DTE object model is required to delete the mapped folder.
                Dim dteProject As EnvDTE.Project = _
                    sharePointProject.ProjectService.Convert(Of ISharePointProject, EnvDTE.Project)(sharePointProject)
                Dim targetFolderName As String = _
                    sharePointProject.MappedFolders.First(Function(mf) mf.FolderType = MappedFolderType.Images).Name
                Dim mappedFolderItem As EnvDTE.ProjectItem = dteProject.ProjectItems.Item(targetFolderName)
                mappedFolderItem.Delete()
    
                sharePointProject.ProjectService.Logger.WriteLine("Mapped Folder " & _
                    targetFolderName & " deleted", LogCategory.Status)
            End Sub
        End Class
    End Namespace
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.ComponentModel;
    using System.ComponentModel.Composition;
    using System.Windows.Forms;
    using Microsoft.VisualStudio.SharePoint;
    using EnvDTE;
    
    // Adds a new property called MapImagesFolder to any SharePoint project.
    // When MapImagesFolder is set to true, the Image folder is mapped to the project.
    // When MapImagesFolder is set to false, the Image folder is deleted from the project.
    namespace SP_Project_Extension
    {
        // Export attribute: Enables Visual Studio to discover and load this extension.
        [Export(typeof(ISharePointProjectExtension))]
    
        // Defines a new custom project property that applies to any SharePoint project.
        public class SPProjectExtension : ISharePointProjectExtension
        {
            // Implements ISharePointProjectService.Initialize, which determines the behavior of the new property.
            public void Initialize(ISharePointProjectService projectService)
            {
                // Handle events for when a project property is changed.
                projectService.ProjectPropertiesRequested +=
                    new EventHandler<SharePointProjectPropertiesRequestedEventArgs>(projectService_ProjectPropertiesRequested);
            }
    
            void projectService_ProjectPropertiesRequested(object sender, SharePointProjectPropertiesRequestedEventArgs e)
            {
                // Add a new property to the SharePoint project.
                e.PropertySources.Add((object)new ImagesMappedFolderProperty(e.Project));
            }
        }
    
        public class ImagesMappedFolderProperty
        {
            ISharePointProject sharePointProject = null;
            public ImagesMappedFolderProperty(ISharePointProject myProject)
            {
                sharePointProject = myProject;
            }
            static bool MapFolderSetting = false;
    
            [DisplayName("Map Images Folder")]
            [DescriptionAttribute("Specifies whether an Images folder is mapped to the SharePoint project.")]
            public bool MapImagesFolder
            // Represents the new boolean property MapImagesFolder.
            // True = Map an Images folder to the project if one does not already exist; otherwise, do nothing.
            // False = Remove the Images folder from the project, if one exists; otherwise, do nothing.
            {
                get
                {
                    // Get the current property value.
                    return MapFolderSetting;
                }
                set
                {
                    if (value)
                    {
                        if (!ImagesMappedFolderInProjectExists(sharePointProject))
                        {
                            // An Images folder is not mapped to the project, so map one.
                            IMappedFolder mappedFolder1 = sharePointProject.MappedFolders.Add(MappedFolderType.Images);
                            // Add a note to the logger that a mapped folder was added.
                            sharePointProject.ProjectService.Logger.WriteLine("Mapped Folder added:" + mappedFolder1.Name, LogCategory.Status);
                        }
                    }
                    else
                    {
                        if (ImagesMappedFolderInProjectExists(sharePointProject) && UserSaysDeleteFile())
                        {
                            // An Images folder is mapped to the project and the user wants to remove it.
                            // The Visual Studio DTE object model is required to delete the mapped folder.
                            // Reference the Visual Studio DTE model, get handles for the SharePoint project and project items.
                            EnvDTE.Project dteProject = sharePointProject.ProjectService.Convert<ISharePointProject, EnvDTE.Project>(sharePointProject);
                            string targetFolderName = sharePointProject.MappedFolders.First(mf => mf.FolderType == MappedFolderType.Images).Name;
                            EnvDTE.ProjectItem mappedFolderItem = dteProject.ProjectItems.Item(targetFolderName);
                            mappedFolderItem.Delete();
                            sharePointProject.ProjectService.Logger.WriteLine("Mapped Folder " + targetFolderName + " deleted", LogCategory.Status);
                        }
                    }
                    MapFolderSetting = value;
                }
    
            }
    
            private bool ImagesMappedFolderInProjectExists(ISharePointProject sharePointProject)
            {
                bool retVal = false;
                foreach (IMappedFolder folder in sharePointProject.MappedFolders)
                {
                    // Check to see if an Images folder is already mapped.
                    if (folder.FolderType == MappedFolderType.Images)
                        retVal = true;
                }
                return retVal;
            }
    
            private bool UserSaysDeleteFile()
            {
                // Prompt the user whether they want to delete the Images folder.
                bool retVal = false;
                if (MessageBox.Show("Do you want to delete the Images folder from the project?", "Delete the Images folder?", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    retVal = true;
                }
                return retVal;
    
            }
        }
    }
    

Générer la solutionBuild the solution

Ensuite, générez la solution pour vous assurer qu’il est compilé sans erreur.Next, build the solution to make sure that it compiles without errors.

Pour générer la solutionTo build the solution

  1. Dans la barre de menus, choisissez Générer > Générer la solution.On the menu bar, choose Build > Build Solution.

Créer un package VSIX pour déployer l’extension de propriété de projetCreate a VSIX package to deploy the project property extension

Pour déployer l’extension de projet, utilisez le projet VSIX dans votre solution pour créer un package VSIX.To deploy the project extension, use the VSIX project in your solution to create a VSIX package. Tout d’abord, configurez le package VSIX en modifiant le fichier source.extension.vsixmanifest qui est inclus dans le projet VSIX.First, configure the VSIX package by modifying the source.extension.vsixmanifest file that is included in the VSIX project. Ensuite, créez le package VSIX en générant la solution.Then, create the VSIX package by building the solution.

Pour configurer et créer le package VSIXTo configure and create the VSIX package

  1. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le fichier source.extension.vsixmanifest, puis choisissez le ouvrir bouton.In Solution Explorer, open the shortcut menu for the source.extension.vsixmanifest file, and then choose the Open button.

    Visual StudioVisual Studio Ouvre le fichier dans le Concepteur de manifeste. opens the file in the manifest designer. Les informations qui apparaissent dans le métadonnées onglet apparaît également dans le Extensions et mises à jour.The information that appears in the Metadata tab also appears in the Extensions and Updates. Tous les packages VSIX requièrent le fichier extension.vsixmanifest.All VSIX packages require the extension.vsixmanifest file. Pour plus d’informations sur ce fichier, consultez VSIX Extension schéma 1.0 référence.For more information about this file, see VSIX Extension Schema 1.0 Reference.

  2. Dans le Product Name , entrez propriété de projet personnalisé.In the Product Name box, enter Custom Project Property.

  3. Dans le auteur , entrez Contoso.In the Author box, enter Contoso.

  4. Dans le Description , entrez une propriété de projet SharePoint personnalisée qui active ou désactive le mappage du dossier de ressources d’Images au projet.In the Description box, enter A custom SharePoint project property that toggles the mapping of the Images resource folder to the project.

  5. Choisissez le actifs onglet, puis choisissez le New bouton.Choose the Assets tab, and then choose the New button.

    Le ajouter un nouveau composant boîte de dialogue s’affiche.The Add New Asset dialog box appears.

  6. Dans le Type , choisissez Microsoft.VisualStudio.MefComponent.In the Type list, choose Microsoft.VisualStudio.MefComponent.

    Note

    Cette valeur correspond à la MEFComponent élément dans le fichier extension.vsixmanifest.This value corresponds to the MEFComponent element in the extension.vsixmanifest file. Cet élément spécifie le nom d’un assembly d’extension dans le package VSIX.This element specifies the name of an extension assembly in the VSIX package. Pour plus d’informations, consultez MEFComponent, élément (schéma VSX).For more information, see MEFComponent Element (VSX Schema).

  7. Dans le Source , choisissez le un projet dans la solution actuelle case d’option.In the Source list, choose the A project in current solution option button.

  8. Dans le projet , choisissez ProjectExtension.In the Project list, choose ProjectExtension.

    Cette valeur identifie le nom de l’assembly que vous générez dans le projet.This value identifies the name of the assembly that you're building in the project.

  9. Choisissez OK pour fermer la ajouter un nouveau composant boîte de dialogue.Choose OK to close the Add New Asset dialog box.

  10. Dans la barre de menus, choisissez fichier > Enregistrer tout lorsque vous avez terminé et puis fermez le Concepteur de manifeste.On the menu bar, choose File > Save All when you finish, and then close the manifest designer.

  11. Dans la barre de menus, choisissez Build > générer la Solution, puis assurez-vous que le projet se compile sans erreur.On the menu bar, choose Build > Build Solution, and then make sure that the project compiles without errors.

  12. Dans l’Explorateur de solutions, ouvrez le menu contextuel pour le ProjectExtensionPackage de projet, puis choisissez le ouvrir le dossier dans l’Explorateur de fichiers bouton.In Solution Explorer, open the shortcut menu for the ProjectExtensionPackage project, and choose the Open Folder in File Explorer button.

  13. Dans Explorateur de fichiers, ouvrez le dossier de sortie de génération pour le projet ProjectExtensionPackage, puis vérifiez que le dossier contient un fichier nommé ProjectExtensionPackage.vsix.In File Explorer, open the build output folder for the ProjectExtensionPackage project, and then verify that the folder contains a file that's named ProjectExtensionPackage.vsix.

    Par défaut, le dossier de sortie est le... dossier \bin\debug sous le dossier qui contient votre fichier projet.By default, the build output folder is the ..\bin\Debug folder under the folder that contains your project file.

Tester la propriété de projetTest the project property

Vous êtes maintenant prêt à tester la propriété de projet personnalisé.You're now ready to test the custom project property. Il est plus facile à déboguer et tester la nouvelle extension de propriété de projet dans une instance expérimentale de Visual StudioVisual Studio.It's easiest to debug and test the new project property extension in an experimental instance of Visual StudioVisual Studio. Cette instance de Visual StudioVisual Studio est créé lorsque vous exécutez un projet VSIX ou un autre projet d’extensibilité.This instance of Visual StudioVisual Studio is created when you run a VSIX or other extensibility project. Une fois que vous déboguez le projet, vous pouvez installer l’extension sur votre système et continuer à déboguer et tester dans une instance normale de Visual StudioVisual Studio.After you debug the project, you can install the extension on your system and then continue to debug and test it in a regular instance of Visual StudioVisual Studio.

Pour déboguer et tester l’extension dans une instance expérimentale de Visual StudioTo debug and test the extension in an experimental instance of Visual Studio

  1. Redémarrez Visual StudioVisual Studio avec les informations d’identification administratives, puis ouvrez la solution ProjectExtensionPackage.Restart Visual StudioVisual Studio with administrative credentials, and then open the ProjectExtensionPackage solution.

  2. Démarrer une version debug de votre projet en sélectionnant le F5 clé ou, dans la barre de menus, choisissez déboguer > démarrer le débogage.Start a debug build of your project either by choosing the F5 key or, on the menu bar, choosing Debug > Start Debugging.

    Visual StudioVisual Studio Installe l’extension %UserProfile%\AppData\Local\Microsoft\VisualStudio\11.0Exp\Extensions\Contoso\Custom Project Property\1. 0 et démarre une instance expérimentale de Visual StudioVisual Studio. installs the extension to %UserProfile%\AppData\Local\Microsoft\VisualStudio\11.0Exp\Extensions\Contoso\Custom Project Property\1.0 and starts an experimental instance of Visual StudioVisual Studio.

  3. Dans l’instance expérimentale de Visual StudioVisual Studio, créez un projet SharePoint pour une solution de batterie de serveurs et utiliser les valeurs par défaut pour les autres valeurs dans l’Assistant.In the experimental instance of Visual StudioVisual Studio, create a SharePoint project for a farm solution, and use the default values for the other values in the wizard.

    1. Dans la barre de menus, choisissez Fichier > Nouveau > Projet.On the menu bar, choose File > New > Project.

    2. En haut de la nouveau projet boîte de dialogue, sélectionnez .NET Framework 3.5 dans la liste des versions du .NET Framework.At the top of the New Project dialog box, choose .NET Framework 3.5 in the list of versions of the .NET Framework.

      Extensions de l’outil SharePoint nécessitent des fonctionnalités dans cette version de la .NET Framework.NET Framework.SharePoint tool extensions require features in this version of the .NET Framework.NET Framework.

    3. Sous le modèles nœud, développez le Visual C# ou Visual Basic nœud, choisissez le SharePoint nœud, puis choisissez le 2010 nœud.Under the Templates node, expand the Visual C# or Visual Basic node, choose the SharePoint node, and then choose the 2010 node.

    4. Choisissez le projet SharePoint 2010 modèle, puis entrez ModuleTest comme nom de votre projet.Choose the SharePoint 2010 Project template, and then enter ModuleTest as the name of your project.

  4. Dans l’Explorateur de solutions, choisissez le ModuleTest nœud du projet.In Solution Explorer, choose the ModuleTest project node.

    Une nouvelle propriété personnalisée dossier Images de carte s’affiche dans le propriétés fenêtre avec une valeur par défaut False.A new custom property Map Images Folder appears in the Properties window with a default value of False.

  5. Modifiez la valeur de cette propriété pour True.Change the value of that property to True.

    Un dossier de ressources d’Images est ajouté au projet SharePoint.An Images resource folder is added to the SharePoint project.

  6. Modification de la valeur de cette propriété en False.Change the value of that property back to False.

    Si vous choisissez la Oui situé dans le supprimer le dossier Images ? boîte de dialogue, les Images de dossier de ressources est supprimé du projet SharePoint.If you choose the Yes button in the Delete the Images folder? dialog box, the Images resource folder is deleted from the SharePoint project.

  7. Fermez l'instance expérimentale de Visual StudioVisual Studio.Close the experimental instance of Visual StudioVisual Studio.

Voir aussiSee also

Étendre des projets SharePoint Extend SharePoint projects
Comment : ajouter une propriété à des projets SharePoint How to: Add a property to SharePoint projects
Effectuer une conversion entre les types de système de projet SharePoint et d’autres types de projet Visual Studio Convert between SharePoint project system types and other Visual Studio project types
Enregistrer les données dans les extensions du système de projet SharePoint Save data in extensions of the SharePoint project system
Associer des données personnalisées avec les extensions d’outils SharePointAssociate custom data with SharePoint tools extensions