Tutorial: Crear un elemento de proyecto de acción personalizado con una plantilla de elementos, parte 1Walkthrough: Create a custom action project item with an item template, Part 1

Puede extender el sistema de proyectos de SharePoint en Visual Studio creando sus propios tipos de elemento de proyecto.You can extend the SharePoint project system in Visual Studio by creating your own project item types. En este tutorial, creará un elemento de proyecto que se puede agregar a un proyecto de SharePoint para crear una acción personalizada en un sitio de SharePoint.In this walkthrough, you will create a project item that can be added to a SharePoint project to create a custom action on a SharePoint site. La acción personalizada agrega un elemento de menú a la acciones del sitio menú del sitio de SharePoint.The custom action adds a menu item to the Site Actions menu of the SharePoint site.

En este tutorial se muestran las siguientes tareas:This walkthrough demonstrates the following tasks:

  • Crear una extensión de Visual Studio que define un nuevo tipo de elemento de proyecto de SharePoint para una acción personalizada.Creating a Visual Studio extension that defines a new type of SharePoint project item for a custom action. El nuevo tipo de elemento de proyecto implementa varias características personalizadas:The new project item type implements several custom features:

    • Un menú contextual que actúa como un punto inicial para las tareas adicionales relacionadas con el elemento de proyecto, como mostrar un diseñador para la acción personalizada en Visual Studio.A shortcut menu that serves as a starting point for additional tasks related to the project item, such as displaying a designer for the custom action in Visual Studio.

    • Código que se ejecuta cuando un desarrollador cambia ciertas propiedades del elemento de proyecto y del proyecto que lo contiene.Code that runs when a developer changes certain properties of the project item and the project that contains it.

    • Un icono personalizado que aparece junto al elemento de proyecto en el Explorador de soluciones.A custom icon that appears next to the project item in Solution Explorer.

  • Crear una plantilla de elementos de Visual Studio para el elemento de proyecto.Creating a Visual Studio item template for the project item.

  • Compilar un paquete de extensión de Visual Studio (VSIX) para implementar la plantilla de elemento de proyecto y el ensamblado de la extensión.Building a Visual Studio Extension (VSIX) package to deploy the project item template and the extension assembly.

  • Depurar y probar el elemento de proyecto.Debugging and testing the project item.

    Este es un tutorial independiente.This is a stand-alone walkthrough. Después de completar este tutorial, puede mejorar el elemento de proyecto si agrega un asistente a la plantilla de elemento.After you complete this walkthrough, you can enhance the project item by adding a wizard to the item template. Para obtener más información, consulte Tutorial: crear un elemento de proyecto de acción personalizado con una plantilla de elementos, parte 2.For more information, see Walkthrough: Create a custom action project item with an item template, Part 2.

Note

Puede descargar una muestra de Github que muestra cómo crear actividades personalizadas para un flujo de trabajo.You can download a sample from Github that shows how to create custom activities for a workflow.

Requisitos previosPrerequisites

Necesitará los componentes siguientes en el equipo de desarrollo para completar este tutorial:You need the following components on the development computer to complete this walkthrough:

  • Ediciones compatibles de Microsoft Windows, SharePoint y Visual Studio.Supported editions of Microsoft Windows, SharePoint and Visual Studio.

  • Visual Studio SDKVisual Studio SDK.The Visual Studio SDKVisual Studio SDK. Este tutorial utiliza el proyecto VSIX plantilla en el SDK para crear un paquete VSIX para implementar el elemento de proyecto.This walkthrough uses the VSIX Project template in the SDK to create a VSIX package to deploy the project item. Para obtener más información, consulte extender las herramientas de SharePoint en Visual Studio.For more information, see Extend the SharePoint Tools in Visual Studio.

    El conocimiento de los siguientes conceptos es útil, aunque no necesario, para completar el tutorial.Knowledge of the following concepts is helpful, but not required, to complete the walkthrough:

  • Acciones personalizadas en SharePoint.Custom actions in SharePoint. Para obtener más información, consulte acción personalizada.For more information, see Custom Action.

  • Plantillas de elemento en Visual Studio.Item templates in Visual Studio. Para obtener más información, vea Crear plantillas para proyectos y elementos en Visual Studio.For more information, see Creating Project and Item Templates.

Crear los proyectosCreate the projects

Para completar este tutorial, debe crear tres proyectos:To complete this walkthrough, you need to create three projects:

  • Un proyecto VSIX.A VSIX project. Este proyecto crea el paquete VSIX para implementar el elemento de proyecto de SharePoint.This project creates the VSIX package to deploy the SharePoint project item.

  • Un proyecto de plantilla de elemento.An item template project. Este proyecto crea una plantilla de elemento que se puede utilizar para agregar el elemento de proyecto de SharePoint a un proyecto de SharePoint.This project creates an item template that can be used to add the SharePoint project item to a SharePoint project.

  • Un proyecto de biblioteca de clases.A class library project. Este proyecto implementa una extensión de Visual Studio que define el comportamiento del elemento de proyecto de SharePoint.This project implements a Visual Studio extension that defines the behavior of the SharePoint project item.

    Comience el tutorial creando ambos proyectos.Start the walkthrough by creating the projects.

Para crear el proyecto VSIXTo create the VSIX project

  1. Inicie Visual StudioVisual Studio.Start Visual StudioVisual Studio.

  2. En la barra de menús, elija Archivo > Nuevo > Proyecto.On the menu bar, choose File > New > Project.

  3. En la lista en la parte superior de la nuevo proyecto diálogo cuadro, asegúrese de que .NET Framework 4.5 está seleccionada.In the list at the top of the New Project dialog box, make sure that .NET Framework 4.5 is selected.

  4. En el nuevo proyecto cuadro de diálogo, expanda el Visual C# o Visual Basic nodos y, a continuación, elija el extensibilidad nodo.In the New Project dialog box, expand the Visual C# or Visual Basic nodes, and then choose the Extensibility node.

    Note

    El extensibilidad nodo está disponible solo si instala el SDK de Visual Studio.The Extensibility node is available only if you install the Visual Studio SDK. Para obtener más información, vea la sección Requisitos previos, anteriormente en este tema.For more information, see the prerequisites section earlier in this topic.

  5. Elija la proyecto VSIX plantilla.Choose the VSIX Project template.

  6. En el nombre , escriba CustomActionProjectItemy, a continuación, elija el Aceptar botón.In the Name box, enter CustomActionProjectItem, and then choose the OK button.

    Visual StudioVisual Studio Agrega el CustomActionProjectItem proyecto a el Explorador de soluciones. adds the CustomActionProjectItem project to Solution Explorer.

Para crear el proyecto de plantilla de elementoTo create the item template project

  1. En el Explorador de soluciones, abra el menú contextual del nodo de solución, elija agregary, a continuación, elija nuevo proyecto.In Solution Explorer, open the shortcut menu for the solution node, choose Add, and then choose New Project.

  2. En la lista en la parte superior de la nuevo proyecto diálogo cuadro, asegúrese de que .NET Framework 4.5 está seleccionada.In the list at the top of the New Project dialog box, make sure that .NET Framework 4.5 is selected.

  3. En el nuevo proyecto cuadro de diálogo, expanda el Visual C# o Visual Basic nodos y, a continuación, elija el extensibilidad nodo.In the New Project dialog box, expand the Visual C# or Visual Basic nodes, and then choose the Extensibility node.

  4. En la lista de plantillas de proyecto, elija el plantilla de elemento de C# o plantilla de elemento de Visual Basic plantilla.In the list of project templates, choose the C# Item Template or Visual Basic Item Template template.

  5. En el nombre , escriba ItemTemplatey, a continuación, elija el Aceptar botón.In the Name box, enter ItemTemplate, and then choose the OK button.

    Visual StudioVisual Studio Agrega el ItemTemplate proyecto a la solución. adds the ItemTemplate project to the solution.

Para crear la extensión de proyectoTo create the extension project

  1. En el Explorador de soluciones, abra el menú contextual del nodo de solución, elija agregary, a continuación, elija nuevo proyecto.In Solution Explorer, open the shortcut menu for the solution node, choose Add, and then choose New Project.

  2. En la lista en la parte superior de la nuevo proyecto diálogo cuadro, asegúrese de que .NET Framework 4.5 está seleccionada.In the list at the top of the New Project dialog box, make sure that .NET Framework 4.5 is selected.

  3. En el nuevo proyecto cuadro de diálogo, expanda el Visual C# o Visual Basic nodos, elija el Windows nodo y, a continuación, elija el Biblioteca de clases plantilla de proyecto.In the New Project dialog box, expand the Visual C# or Visual Basic nodes, choose the Windows node, and then choose the Class Library project template.

  4. En el nombre , escriba ProjectItemDefinitiony, a continuación, elija el Aceptar botón.In the Name box, enter ProjectItemDefinition, and then choose the OK button.

    Visual StudioVisual Studio Agrega el ProjectItemDefinition proyecto a la solución y abre el archivo de código predeterminado Class1. adds the ProjectItemDefinition project to the solution and opens the default Class1 code file.

  5. Elimine el archivo de código Class1 del proyecto.Delete the Class1 code file from the project.

Configurar el proyecto de extensiónConfigure the extension project

Antes de escribir el código para definir el tipo de elemento de proyecto de SharePoint, tiene que agregar los archivos de código y las referencias de ensamblado al proyecto de extensión.Before you write code to define the SharePoint project item type, you have to add code files and assembly references to the extension project.

Para configurar el proyectoTo configure the project

  1. En el Explorador de soluciones, abra el menú contextual para el ProjectItemDefinition del proyecto, elija agregar, a continuación, elija nuevo elemento.In Solution Explorer, open the shortcut menu for the ProjectItemDefinition project, choose Add, then choose New Item.

  2. En la lista de elementos de proyecto, elija archivo de código.In the list of project items, choose Code File.

  3. En el nombre , escriba el nombre CustomAction con los valores adecuados la extensión de nombre de archivo y, a continuación, elija el agregar botón.In the Name box, enter the name CustomAction with the appropriate file name extension, and then choose the Add button.

  4. En el Explorador de soluciones, abra el menú contextual para el ProjectItemDefinition del proyecto y, a continuación, elija Agregar referencia.In Solution Explorer, open the shortcut menu for the ProjectItemDefinition project, and then choose Add Reference.

  5. En el Administrador de referencias - ProjectItemDefinition diálogo cuadro, elija el ensamblados nodo y, a continuación, elija el Framework nodo.In the Reference Manager - ProjectItemDefinition dialog box, choose the Assemblies node, and then choose the Framework node.

  6. Active la casilla situada al lado de cada uno de los siguientes ensamblados:Select the check box next to each of the following assemblies:

    • System.ComponentModel.CompositionSystem.ComponentModel.Composition

    • System.Windows.FormsSystem.Windows.Forms

  7. Elija la extensiones nodo, seleccione la casilla de verificación situada junto al ensamblado Microsoft.VisualStudio.Sharepoint y, a continuación, elija el Aceptar botón.Choose the Extensions node, select the check box next to the Microsoft.VisualStudio.Sharepoint assembly, and then choose the OK button.

Definir el nuevo tipo de elemento de proyecto de SharePointDefine the new SharePoint project item type

Cree una clase que implemente la interfaz ISharePointProjectItemTypeProvider para definir el comportamiento del nuevo tipo de elemento de proyecto.Create a class that implements the ISharePointProjectItemTypeProvider interface to define the behavior of the new project item type. Implemente esta interfaz para definir un nuevo tipo de elemento de proyecto todas las veces que desee.Implement this interface whenever you want to define a new type of project item.

Para definir el nuevo tipo de elemento de proyecto de SharePointTo define the new SharePoint project item type

  1. En el proyecto ProjectItemDefinition, abra el archivo de código CustomAction.In the ProjectItemDefinition project, open the CustomAction code file.

  2. Reemplace el código de este archivo por el código siguiente.Replace the code in this file with the following code.

    using System;
    using System.Diagnostics;
    using System.ComponentModel;
    using System.ComponentModel.Composition;
    using Microsoft.VisualStudio.SharePoint;
    
    namespace Contoso.SharePointProjectItems.CustomAction
    {
        // Enables Visual Studio to discover and load this extension.
        [Export(typeof(ISharePointProjectItemTypeProvider))]
    
        // Specifies the ID for this new project item type. This string must match the value of the 
        // Type attribute of the ProjectItem element in the .spdata file for the project item.
        [SharePointProjectItemType("Contoso.CustomAction")]
    
        // Specifies the icon to display with this project item in Solution Explorer.
        [SharePointProjectItemIcon("ProjectItemDefinition.CustomAction_SolutionExplorer.ico")]
    
        // Defines a new type of project item that can be used to create a custom action on a SharePoint site.
        internal partial class CustomActionProjectItemTypeProvider : ISharePointProjectItemTypeProvider
        {
            // Implements IProjectItemTypeProvider.InitializeType. Configures the behavior of the project item type.
            public void InitializeType(ISharePointProjectItemTypeDefinition projectItemTypeDefinition)
            {
                projectItemTypeDefinition.Name = "CustomAction";
                projectItemTypeDefinition.SupportedDeploymentScopes =
                    SupportedDeploymentScopes.Site | SupportedDeploymentScopes.Web;
                projectItemTypeDefinition.SupportedTrustLevels = SupportedTrustLevels.All;
    
                projectItemTypeDefinition.ProjectItemNameChanged += ProjectItemNameChanged;
                projectItemTypeDefinition.ProjectItemMenuItemsRequested += ProjectItemMenuItemsRequested;
            }
    
            private const string designerMenuItemText = "View Custom Action Designer";
    
            private void ProjectItemMenuItemsRequested(object sender, SharePointProjectItemMenuItemsRequestedEventArgs e)
            {
                e.ViewMenuItems.Add(designerMenuItemText).Click += MenuItemClick;
            }
    
            private void MenuItemClick(object sender, MenuItemEventArgs e)
            {
                ISharePointProjectItem projectItem = (ISharePointProjectItem)e.Owner;
                string message = String.Format("You clicked the menu on the {0} item. " +
                    "You could perform some related task here, such as displaying a designer " +
                    "for the custom action.", projectItem.Name);
                System.Windows.Forms.MessageBox.Show(message, "Contoso Custom Action");
            }
    
            private void ProjectItemNameChanged(object sender, NameChangedEventArgs e)
            {
                ISharePointProjectItem projectItem = (ISharePointProjectItem)sender;
                string message = String.Format("The name of the {0} item changed to: {1}",
                    e.OldName, projectItem.Name);
                projectItem.Project.ProjectService.Logger.WriteLine(message, LogCategory.Message);
            }
        }
    }
    
    Imports System
    Imports System.Diagnostics
    Imports System.ComponentModel
    Imports System.ComponentModel.Composition
    Imports Microsoft.VisualStudio.SharePoint
    
    Namespace Contoso.SharePointProjectItems.CustomAction
    
        ' Export attribute: Enables Visual Studio to discover and load this extension.
        ' SharePointProjectItemType attribute: Specifies the ID for this new project item type. This string must 
        '     match the value of the Type attribute of the ProjectItem element in the .spdata file for 
        '     the project item.
        ' SharePointProjectItemIcon attribute: Specifies the icon to display with this project item in Solution Explorer.
        ' CustomActionProjectItemTypeProvider class: Defines a new type of project item that can be used to create a custom 
        '     action on a SharePoint site.
        <Export(GetType(ISharePointProjectItemTypeProvider))> _
        <SharePointProjectItemType("Contoso.CustomAction")> _
        <SharePointProjectItemIcon("ProjectItemDefinition.CustomAction_SolutionExplorer.ico")> _
        Partial Friend Class CustomActionProjectItemTypeProvider
            Implements ISharePointProjectItemTypeProvider
    
            Private WithEvents projectItemTypeDefinition As ISharePointProjectItemTypeDefinition
    
            ' Configures the behavior of the project item type.
            Private Sub InitializeType(ByVal projectItemTypeDefinition As ISharePointProjectItemTypeDefinition) _
                Implements ISharePointProjectItemTypeProvider.InitializeType
    
                projectItemTypeDefinition.Name = "CustomAction"
                projectItemTypeDefinition.SupportedDeploymentScopes = _
                    SupportedDeploymentScopes.Site Or SupportedDeploymentScopes.Web
                projectItemTypeDefinition.SupportedTrustLevels = SupportedTrustLevels.All
                Me.projectItemTypeDefinition = projectItemTypeDefinition
            End Sub
    
            Private Const DesignerMenuItemText As String = "View Custom Action Designer"
    
            Private Sub ProjectItemMenuItemsRequested(ByVal Sender As Object, _
                ByVal e As SharePointProjectItemMenuItemsRequestedEventArgs) _
                Handles projectItemTypeDefinition.ProjectItemMenuItemsRequested
    
                Dim viewDesignerMenuItem As IMenuItem = e.ViewMenuItems.Add(DesignerMenuItemText)
                AddHandler viewDesignerMenuItem.Click, AddressOf MenuItemClick
            End Sub
    
            Private Sub MenuItemClick(ByVal Sender As Object, ByVal e As MenuItemEventArgs)
                Dim projectItem As ISharePointProjectItem = CType(e.Owner, ISharePointProjectItem)
                Dim message As String = String.Format("You clicked the menu on the {0} item. " & _
                    "You could perform some related task here, such as displaying a designer " & _
                    "for the custom action.", projectItem.Name)
                System.Windows.Forms.MessageBox.Show(message, "Contoso Custom Action")
            End Sub
    
            Private Sub ProjectItemNameChanged(ByVal Sender As Object, ByVal e As NameChangedEventArgs) _
                Handles projectItemTypeDefinition.ProjectItemNameChanged
                Dim projectItem As ISharePointProjectItem = CType(Sender, ISharePointProjectItem)
                Dim message As String = String.Format("The name of the {0} item changed to: {1}", _
                    e.OldName, projectItem.Name)
                projectItem.Project.ProjectService.Logger.WriteLine(message, LogCategory.Message)
            End Sub
        End Class
    End Namespace
    

Crear un icono para el elemento de proyecto en el Explorador de solucionesCreate an icon for the project item in Solution Explorer

Cuando crea un elemento de proyecto de SharePoint personalizado, puede asociarle una imagen (un icono o mapa de bits).When you create a custom SharePoint project item, you can associate an image (an icon or bitmap) with the project item. Esta imagen aparece junto al elemento de proyecto en el Explorador de soluciones.This image appears next to the project item in Solution Explorer.

En el procedimiento siguiente se crea un icono para el elemento de proyecto y se incrusta en el ensamblado de la extensión.In the following procedure, you create an icon for the project item and embed the icon in the extension assembly. El SharePointProjectItemIconAttribute de la clase CustomActionProjectItemTypeProvider que creó anteriormente hace referencia a este icono.This icon is referenced by the SharePointProjectItemIconAttribute of the CustomActionProjectItemTypeProvider class that you created earlier.

Para crear un icono personalizado para el elemento de proyectoTo create a custom icon for the project item

  1. En el Explorador de soluciones, abra el menú contextual para el ProjectItemDefinition del proyecto, elija agregary, a continuación, elija nuevo elemento... .In Solution Explorer, open the shortcut menu for the ProjectItemDefinition project, choose Add, and then choose New Item....

  2. En la lista de elementos de proyecto, elija el archivo de icono elemento.In the list of project items, choose the Icon File item.

    Note

    En proyectos de Visual Basic, debe elegir el General nodo para mostrar el archivo de icono elemento.In Visual Basic projects, you must choose the General node to display the Icon File item.

  3. En el nombre , escriba CustomAction_SolutionExplorer.icoy, a continuación, elija el agregar botón.In the Name box, enter CustomAction_SolutionExplorer.ico, and then choose the Add button.

    El nuevo icono se abre en el Editor de imágenes.The new icon opens in the Image Editor.

  4. Modifique la versión 16x16 del archivo de icono para que tenga un diseño que pueda reconocer y guarde el archivo.Edit the 16x16 version of the icon file so that it has a design you can recognize, and then save the icon file.

  5. En el Explorador de soluciones, elija CustomAction_SolutionExplorer.ico.In Solution Explorer, choose CustomAction_SolutionExplorer.ico.

  6. En el propiedades ventana, elija la flecha situada junto a la acción de compilación propiedad.In the Properties window, choose the arrow next to the Build Action property.

  7. En la lista que aparece, elija recurso incrustado.In the list that appears, choose Embedded Resource.

Punto de controlCheckpoint

En este punto del tutorial, todo el código del elemento de proyecto está en el proyecto.At this point in the walkthrough, all the code for the project item is now in the project. Compile el proyecto para comprobar que se compila sin errores.Build the project to verify that it compiles without errors.

Para compilar el proyectoTo build your project

  1. Abra el menú contextual para el ProjectItemDefinition proyecto y elija compilar.Open the shortcut menu for the ProjectItemDefinition project and choose Build.

Crear una plantilla de elemento de Visual StudioCreate a Visual Studio item template

Para permitir que otros desarrolladores usen el elemento de proyecto, debe crear una plantilla de proyecto o una plantilla de elemento de proyecto.To enable other developers to use your project item, you must create a project template or item template. Los desarrolladores utilizan estas plantillas en Visual Studio para crear una instancia de su elemento de proyecto creando un nuevo proyecto o agregando un elemento a un proyecto existente.Developers use these templates in Visual Studio to create an instance of your project item by creating a new project, or by adding an item to an existing project. En este tutorial, use el proyecto ItemTemplate para configurar el elemento de proyecto.For this walkthrough, use the ItemTemplate project to configure your project item.

Para crear la plantilla de elementosTo create the item template

  1. Elimine el archivo de código Class1 del proyecto ItemTemplate.Delete the Class1 code file from the ItemTemplate project.

  2. En el proyecto ItemTemplate, abra el ItemTemplate.vstemplate archivo.In the ItemTemplate project, open the ItemTemplate.vstemplate file.

  3. Reemplace el contenido del archivo por el siguiente código XML y, a continuación, guarde y cierre el archivo.Replace the contents of the file with the following XML, and then save and close the file.

    Note

    El siguiente código XML está diseñado para una plantilla de elemento de Visual C#.The following XML is for a Visual C# item template. Si está creando una plantilla de elemento de Visual Basic, reemplace el valor del elemento ProjectType por VisualBasic.If you are creating a Visual Basic item template, replace the value of the ProjectType element with VisualBasic.

    <?xml version="1.0" encoding="utf-8"?>  
    <VSTemplate Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Item">  
      <TemplateData>  
        <DefaultName>CustomAction</DefaultName>  
        <Name>Custom Action</Name>  
        <Description>SharePoint Custom Action by Contoso</Description>  
        <ProjectType>CSharp</ProjectType>  
        <SortOrder>1000</SortOrder>  
        <Icon>ItemTemplate.ico</Icon>  
        <ProvideDefaultName>true</ProvideDefaultName>  
      </TemplateData>  
      <TemplateContent>  
        <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$\Elements.xml">Elements.xml</ProjectItem>  
        <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$\SharePointProjectItem.spdata">CustomAction.spdata</ProjectItem>  
      </TemplateContent>  
    </VSTemplate>  
    

    Este archivo define el contenido y comportamiento de la plantilla de elementos.This file defines the contents and behavior of the item template. Para obtener más información sobre el contenido de este archivo, consulte Visual Studio Template Schema Reference.For more information about the contents of this file, see Visual Studio Template Schema Reference.

  4. En el Explorador de soluciones, abra el menú contextual para el ItemTemplate del proyecto, elija agregary, a continuación, elija nuevo elemento.In Solution Explorer, open the shortcut menu for the ItemTemplate project, choose Add, and then choose New Item.

  5. En el Agregar nuevo elemento diálogo cuadro, elija el archivo de texto plantilla.In the Add New Item dialog box, choose the Text File template.

  6. En el nombre , escriba CustomAction.spdatay, a continuación, elija el agregar botón.In the Name box, enter CustomAction.spdata, and then choose the Add button.

  7. Agregue el siguiente código XML para el CustomAction.spdata de archivos y, a continuación, guarde y cierre el archivo.Add the following XML to the CustomAction.spdata file, and then save and close the file.

    <?xml version="1.0" encoding="utf-8"?>  
    <ProjectItem Type="Contoso.CustomAction" DefaultFile="Elements.xml"   
     xmlns="http://schemas.microsoft.com/VisualStudio/2010/SharePointTools/SharePointProjectItemModel">  
      <Files>  
        <ProjectItemFile Source="Elements.xml" Target="$fileinputname$\" Type="ElementManifest" />  
      </Files>  
    </ProjectItem>  
    

    Este archivo contiene información sobre los archivos que están contenidos en el elemento de proyecto.This file contains information about the files that are contained by the project item. El atributo Type del elemento ProjectItem debe estar establecido en la misma cadena que se pasa a SharePointProjectItemTypeAttribute en la definición del elemento de proyecto (la clase CustomActionProjectItemTypeProvider que creó anteriormente en este tutorial).The Type attribute of the ProjectItem element must be set to the same string that is passed to the SharePointProjectItemTypeAttribute on the project item definition (the CustomActionProjectItemTypeProvider class you created earlier in this walkthrough). Para obtener más información sobre el contenido de .spdata archivos, consulte referencia de esquemas de elemento de proyecto de SharePoint.For more information about the contents of .spdata files, see SharePoint project item schema reference.

  8. En el Explorador de soluciones, abra el menú contextual para el ItemTemplate del proyecto, elija agregary, a continuación, elija nuevo elemento.In Solution Explorer, open the shortcut menu for the ItemTemplate project, choose Add, and then choose New Item.

  9. En el Agregar nuevo elemento diálogo cuadro, elija el archivo XML plantilla.In the Add New Item dialog box, choose the XML File template.

  10. En el nombre , escriba Elements.xmly, a continuación, elija el agregar botón.In the Name box, enter Elements.xml, and then choose the Add button.

  11. Reemplace el contenido de la Elements.xml archivo con el siguiente código XML y, a continuación, guarde y cierre el archivo.Replace the contents of the Elements.xml file with the following XML, and then save and close the file.

    <?xml version="1.0" encoding="utf-8" ?>  
    <Elements Id="$guid8$" xmlns="http://schemas.microsoft.com/sharepoint/">  
      <CustomAction Id="Replace this with a GUID or some other unique string"  
                    GroupId="SiteActions"  
                    Location="Microsoft.SharePoint.StandardMenu"  
                    Sequence="1000"  
                    Title="Replace this with your title"  
                    Description="Replace this with your description" >  
        <UrlAction Url="~site/Lists/Tasks/AllItems.aspx"/>  
      </CustomAction>  
    </Elements>  
    

    Este archivo define una acción personalizada predeterminada que crea un elemento de menú en el acciones del sitio menú del sitio de SharePoint.This file defines a default custom action that creates a menu item on the Site Actions menu of the SharePoint site. Cuando un usuario elige el elemento de menú, la dirección URL especificada en el elemento UrlAction se abre en el explorador web.When a user chooses the menu item, the URL specified in the UrlAction element opens in the web browser. Para obtener más información sobre los elementos XML que puede usar para definir una acción personalizada, vea definiciones de acciones personalizadas.For more information about the XML elements you can use to define a custom action, see Custom Action Definitions.

  12. Si lo desea, abra el ItemTemplate.ico de archivo y modificarlo para que tenga un diseño que pueda reconocer.Optionally, open the ItemTemplate.ico file and modify it so that it has a design that you can recognize. Este icono se mostrará junto al elemento de proyecto en el Agregar nuevo elemento cuadro de diálogo.This icon will display next to the project item in the Add New Item dialog box.

  13. En el Explorador de soluciones, abra el menú contextual para el ItemTemplate del proyecto y, a continuación, elija descargar el proyecto.In Solution Explorer, open the shortcut menu for the ItemTemplate project, and then choose Unload Project.

  14. Abra el menú contextual para el ItemTemplate proyecto nuevo y, a continuación, elija Editar ItemTemplate.csproj o Editar ItemTemplate.vbproj.Open the shortcut menu for the ItemTemplate project again, and then choose Edit ItemTemplate.csproj or Edit ItemTemplate.vbproj.

  15. Busque el elemento VSTemplate siguiente en el archivo del proyecto.Locate the following VSTemplate element in the project file.

    <VSTemplate Include="ItemTemplate.vstemplate">  
    
  16. Reemplace este elemento VSTemplate por el siguiente código XML y, a continuación, guarde y cierre el archivo.Replace this VSTemplate element with the following XML, and then save and close the file.

    <VSTemplate Include="ItemTemplate.vstemplate">  
      <OutputSubPath>SharePoint\SharePoint14</OutputSubPath>  
    </VSTemplate>  
    

    El elemento OutputSubPath especifica las carpetas adicionales en la ruta de acceso en la que se crea la plantilla de elemento al compilar el proyecto.The OutputSubPath element specifies additional folders in the path under which the item template is created when you build the project. Las carpetas especificadas aquí garantizan que la plantilla de elemento estará disponible sólo cuando los clientes abran el Agregar nuevo elemento cuadro de diálogo, expanda el SharePoint nodo y, a continuación, elija el 2010 nodo.The folders specified here ensure that the item template will be available only when customers open the Add New Item dialog box, expand the SharePoint node, and then choose the 2010 node.

  17. En el Explorador de soluciones, abra el menú contextual para el ItemTemplate del proyecto y, a continuación, elija recargar el proyecto.In Solution Explorer, open the shortcut menu for the ItemTemplate project, and then choose Reload Project.

Crear un paquete VSIX para implementar el elemento de proyectoCreate a VSIX package to deploy the project item

Para implementar la extensión, utilice el proyecto VSIX en la solución para crear un paquete VSIX.To deploy the extension, use the VSIX project in your solution to create a VSIX package. Primero, configure el paquete VSIX modificando el archivo source.extension.vsixmanifest incluido en el proyecto VSIX.First, configure the VSIX package by modifying the source.extension.vsixmanifest file that is included in the VSIX project. A continuación, cree el paquete VSIX compilando la solución.Then, create the VSIX package by building the solution.

Para crear y configurar el paquete VSIXTo configure and create the VSIX package

  1. En el Explorador de soluciones, abra el menú contextual para el source.extension.vsixmanifest de archivos en el proyecto CustomActionProjectItem y, a continuación, elija abrir.In Solution Explorer, open the shortcut menu for the source.extension.vsixmanifest file in the CustomActionProjectItem project, and then choose Open.

    Visual Studio abre el archivo en el editor de manifiestos.Visual Studio opens the file in the manifest editor. El archivo source.extension.vsixmanifest es la base del archivo extension.vsixmanifest que requieren todos los paquetes VSIX.The source.extension.vsixmanifest file is the basis for the extension.vsixmanifest file that all VSIX packages require. Para obtener más información acerca de este archivo, consulte referencia de 1.0 del esquema de extensión de VSIX.For more information about this file, see VSIX Extension Schema 1.0 Reference.

  2. En el Product Name , escriba Custom Action Project Item.In the Product Name box, enter Custom Action Project Item.

  3. En el autor , escriba Contoso.In the Author box, enter Contoso.

  4. En el descripción , escriba SharePoint de un elemento de proyecto que representa una acción personalizada.In the Description box, enter A SharePoint project item that represents a custom action.

  5. En el activos ficha, elija la New botón.On the Assets tab, choose the New button.

    El Agregar nuevo activo aparece el cuadro de diálogo.The Add New Asset dialog box appears.

  6. En el tipo elija Microsoft.VisualStudio.ItemTemplate.In the Type list, choose Microsoft.VisualStudio.ItemTemplate.

    Note

    Este valor corresponde al elemento ItemTemplate del archivo extension.vsixmanifest.This value corresponds to the ItemTemplate element in the extension.vsixmanifest file. Este elemento identifica la subcarpeta del paquete VSIX que contiene la plantilla de elemento de proyecto.This element identifies the subfolder in the VSIX package that contains the project item template. Para obtener más información, consulte elemento ItemTemplate (Esquema VSX).For more information, see ItemTemplate Element (VSX Schema).

  7. En el origen elija un proyecto de la solución actual.In the Source list, choose A project in current solution.

  8. En el proyecto elija ItemTemplatey, a continuación, elija el Aceptar botón.In the Project list, choose ItemTemplate, and then choose the OK button.

  9. En el activos ficha, elija la New nuevamente en el botón.In the Assets tab, choose the New button again.

    El Agregar nuevo activo aparece el cuadro de diálogo.The Add New Asset dialog box appears.

  10. En el tipo elija Microsoft.VisualStudio.MefComponent.In the Type list, choose Microsoft.VisualStudio.MefComponent.

    Note

    Este valor corresponde al elemento MefComponent del archivo extension.vsixmanifest.This value corresponds to the MefComponent element in the extension.vsixmanifest file. Este elemento especifica el nombre de un ensamblado de extensión en el paquete VSIX.This element specifies the name of an extension assembly in the VSIX package. Para obtener más información, consulte elemento MEFComponent (Esquema VSX).For more information, see MEFComponent Element (VSX Schema).

  11. En el origen elija un proyecto de la solución actual.In the Source list, choose A project in current solution.

  12. En el proyecto elija ProjectItemDefinition.In the Project list, choose ProjectItemDefinition.

  13. Elija el botón Aceptar .Choose the OK button.

  14. En la barra de menús, elija compilar > compilar solucióny, a continuación, asegúrese de que el proyecto se compila sin errores.On the menu bar, choose Build > Build Solution, and then make sure that the project compiles without errors.

  15. Asegúrese de que la carpeta de salida de la compilación del proyecto CustomActionProjectItem contiene el archivo CustomActionProjectItem.vsix.Make sure that the build output folder for the CustomActionProjectItem project contains the CustomActionProjectItem.vsix file.

    De forma predeterminada, la carpeta de salida de la compilación es ..\bin\Debug en la carpeta que contiene el proyecto CustomActionProjectItem.By default, the build output folder is the ..\bin\Debug folder under the folder that contains the CustomActionProjectItem project.

Probar el elemento de proyectoTest the project item

Ya puede probar el elemento de proyecto.You are now ready to test the project item. Primero, empiece a depurar la solución CustomActionProjectItem en la instancia experimental de Visual Studio.First, start debugging the CustomActionProjectItem solution in the experimental instance of Visual Studio. A continuación, pruebe el acción personalizada elemento de proyecto en un proyecto de SharePoint en la instancia experimental de Visual Studio.Then, test the Custom Action project item in a SharePoint project in the experimental instance of Visual Studio. Por último, compile y ejecute el proyecto SharePoint para comprobar que la acción personalizada funciona del modo esperado.Finally, build and run the SharePoint project to verify that the custom action works as expected.

Para empezar a depurar la soluciónTo start debugging the solution

  1. Reinicie Visual Studio con credenciales administrativas y abra la solución CustomActionProjectItem.Restart Visual Studio with administrative credentials, and then open the CustomActionProjectItem solution.

  2. Abra el archivo de código CustomAction y, a continuación, agregue un punto de interrupción a la primera línea de código en el método InitializeType.Open the CustomAction code file, and then add a breakpoint to the first line of code in the InitializeType method.

  3. Elija la F5 tecla para iniciar la depuración.Choose the F5 key to start debugging.

    Visual Studio instala la extensión en %UserProfile%\AppData\Local\Microsoft\VisualStudio\10.0Exp\Extensions\Contoso\Custom Action Project Item\1 .0 e inicia una instancia experimental de Visual Studio.Visual Studio installs the extension to %UserProfile%\AppData\Local\Microsoft\VisualStudio\10.0Exp\Extensions\Contoso\Custom Action Project Item\1.0 and starts an experimental instance of Visual Studio. Probará el elemento de proyecto en esta instancia de Visual Studio.You'll test the project item in this instance of Visual Studio.

Para probar el elemento de proyecto en Visual StudioTo test the project item in Visual Studio

  1. En la instancia experimental de Visual Studio, en la barra de menús, elija archivo > New > proyecto.In the experimental instance of Visual Studio, on the menu bar, choose File > New > Project.

  2. Expanda Visual C# o Visual Basic (dependiendo del lenguaje que admita la plantilla de elemento), expanda SharePointy, a continuación, elija el 2010 nodo.Expand Visual C# or Visual Basic (depending on the language that your item template supports), expand SharePoint, and then choose the 2010 node.

  3. En la lista de plantillas de proyecto, elija proyecto de SharePoint 2010.In the list of project templates, choose SharePoint 2010 Project.

  4. En el nombre , escriba CustomActionTesty, a continuación, elija el Aceptar botón.In the Name box, enter CustomActionTest, and then choose the OK button.

  5. En el Asistente de personalización de SharePoint, escriba la dirección URL del sitio que desea usar para la depuración y, a continuación, elija el finalizar botón.In the SharePoint Customization Wizard, enter the URL of the site that you want to use for debugging, and then choose the Finish button.

  6. En el Explorador de soluciones, abra el menú contextual del nodo de proyecto, elija agregary, a continuación, elija nuevo elemento.In Solution Explorer, open the shortcut menu for the project node, choose Add, and then choose New Item.

  7. En el Agregar nuevo elemento diálogo cuadro, elija el 2010 nodo bajo el SharePoint nodo.In the Add New Item dialog box, choose the 2010 node under the SharePoint node.

    Compruebe que la acción personalizada elemento aparece en la lista de elementos de proyecto.Verify that the Custom Action item appears in the list of project items.

  8. Elija la acción personalizada elemento y, a continuación, elija el agregar botón.Choose the Custom Action item, and then choose the Add button.

    Visual Studio agrega un elemento que se denomina CustomAction1 a su proyecto y abre el Elements.xml archivo en el editor.Visual Studio adds an item that's named CustomAction1 to your project and opens the Elements.xml file in the editor.

  9. Compruebe que el código de la otra instancia de Visual Studio se detiene en el punto de interrupción que estableció anteriormente en el método InitializeType.Verify that the code in the other instance of Visual Studio stops on the breakpoint that you set earlier in the InitializeType method.

  10. Elija la F5 tecla para continuar depurando el proyecto.Choose the F5 key to continue to debug the project.

  11. En la instancia experimental de Visual Studio, en el Explorador de soluciones, abra el menú contextual para el CustomAction1 nodo y, a continuación, elija Ver diseñador de acción personalizada.In the experimental instance of Visual Studio, in Solution Explorer, open the shortcut menu for the CustomAction1 node, and then choose View Custom Action Designer.

  12. Compruebe que aparece un cuadro de mensaje y, a continuación, elija el Aceptar botón.Verify that a message box appears, and then choose the OK button.

    Puede utilizar este menú contextual para proporcionar opciones o comandos adicionales a los desarrolladores, como mostrar un diseñador para la acción personalizada.You can use this shortcut menu to provide additional options or commands for developers, such as displaying a designer for the custom action.

  13. En la barra de menús, elija vista > salida.On the menu bar, choose View > Output.

    El salida abre la ventana.The Output window opens.

  14. En el Explorador de soluciones, abra el menú contextual para el CustomAction1 elemento y, a continuación, cambie su nombre a MyCustomAction.In Solution Explorer, open the shortcut menu for the CustomAction1 item, and then change its name to MyCustomAction.

    En el salida ventana, aparece un mensaje de confirmación.In the Output window, a confirmation message appears. Este mensaje lo escribe el controlador de eventos ProjectItemNameChanged que se definió en la clase CustomActionProjectItemTypeProvider.This message is written by the ProjectItemNameChanged event handler that you defined in the CustomActionProjectItemTypeProvider class. Puede controlar este y otros eventos de elementos de proyecto para implementar el comportamiento personalizado cuando el desarrollador modifica el elemento de proyecto.You can handle this event and other project item events to implement custom behavior when the developer modifies the project item.

Para probar la acción personalizada en SharePointTo test the custom action in SharePoint

  1. En la instancia experimental de Visual Studio, abra el Elements.xml archivo que es un elemento secundario de la MyCustomAction elemento de proyecto.In the experimental instance of Visual Studio, open the Elements.xml file that's a child of the MyCustomAction project item.

  2. En el Elements.xml de archivos, realice los cambios siguientes y, a continuación, guarde el archivo:In the Elements.xml file, make the following changes, and then save the file:

    • En el elemento CustomAction, establezca el atributo Id en un GUID o alguna otra cadena única como se muestra en el ejemplo siguiente:In the CustomAction element, set the Id attribute to a GUID or some other unique string as the following example shows:

      Id="cd85f6a7-af2e-44ab-885a-0c795b52121a"  
      
    • En el elemento CustomAction, establezca el atributo Title tal y como se muestra en el siguiente ejemplo:In the CustomAction element, set the Title attribute as the following example shows:

      Title="SharePoint Developer Center"  
      
    • En el elemento CustomAction, establezca el atributo Description tal y como se muestra en el siguiente ejemplo:In the CustomAction element, set the Description attribute as the following example shows:

      Description="Opens the SharePoint Developer Center Web site."  
      
    • En el elemento UrlAction, establezca el atributo Url tal y como se muestra en el siguiente ejemplo:In the UrlAction element, set the Url attribute as the following example shows:

      Url="http://msdn.microsoft.com/sharepoint/default.aspx"  
      
  3. Elija la tecla F5.Choose the F5 key.

    La acción personalizada se empaqueta e implementa en el sitio de SharePoint que se especifica en el dirección URL del sitio propiedad del proyecto.The custom action is packaged and deployed to the SharePoint site that's specified in the Site URL property of the project. El explorador web se abre en la página predeterminada de este sitio.The web browser opens to the default page of this site.

    Note

    Si el depuración de scripts deshabilitada aparece el cuadro de diálogo, elija el botón para continuar depurando el proyecto.If the Script Debugging Disabled dialog box appears, choose the Yes button to continue to debug the project.

  4. En el acciones del sitio menú, elija Centro para desarrolladores de SharePoint, compruebe que el explorador abre el sitio Web http://msdn.microsoft.com/sharepoint/default.aspxy, a continuación, cierre el explorador web.On the Site Actions menu, choose SharePoint Developer Center, verify that the browser opens the website http://msdn.microsoft.com/sharepoint/default.aspx, and then close the web browser.

Limpiar el equipo de desarrolloClean up the development computer

Después de probar el elemento de proyecto, quite la plantilla de elemento de proyecto de la instancia experimental de Visual Studio.After you finish testing the project item, remove the project item template from the experimental instance of Visual Studio.

Para limpiar el equipo de desarrolloTo clean up the development computer

  1. En la instancia experimental de Visual Studio, en la barra de menús, elija herramientas > extensiones y actualizaciones.In the experimental instance of Visual Studio, on the menu bar, choose Tools > Extensions and Updates.

    Se abre el cuadro de diálogo Extensiones y actualizaciones.The Extensions and Updates dialog box opens.

  2. En la lista de extensiones, elija Custom Action Project Itemy, a continuación, elija el desinstalar botón.In the list of extensions, choose Custom Action Project Item, and then choose the Uninstall button.

  3. En el cuadro de diálogo que aparece, elija el botón para confirmar que desea desinstalar la extensión.In the dialog box that appears, choose the Yes button to confirm that you want to uninstall the extension.

  4. Elija la reiniciar ahora botón para completar la desinstalación.Choose the Restart Now button to complete the uninstallation.

  5. Cierre tanto la instancia experimental de Visual Studio como la instancia en la que se abre la solución CustomActionProjectItem.Close both the experimental instance of Visual Studio and the instance in which the CustomActionProjectItem solution is open.

Pasos siguientesNext steps

Después de completar este tutorial, puede agregar un asistente a la plantilla de elemento.After you complete this walkthrough, you can add a wizard to the item template. Cuando un usuario agrega un elemento de proyecto acción personalizada para un proyecto de SharePoint, el asistente recopila información acerca de la acción (por ejemplo, su ubicación y la dirección URL de destino cuando se elige la acción) y agrega esta información para el Elements.xmlarchivo en el nuevo elemento de proyecto.When a user adds a Custom Action project item to a SharePoint project, the wizard collects information about the action (such as its location and the URL to navigate to when the action is chosen) and adds this information to the Elements.xml file in the new project item. Para obtener más información, consulte Tutorial: crear un elemento de proyecto de acción personalizado con una plantilla de elementos, parte 2.For more information, see Walkthrough: Create a custom action project item with an item template, Part 2.

Vea tambiénSee also

Tutorial: Crear un elemento de proyecto de acción personalizado con una plantilla de elementos, parte 2 Walkthrough: Create a custom action project item with an item template, Part 2
Definir tipos de elemento de proyecto de SharePoint personalizados Define custom SharePoint project item types
Crear plantillas de elemento y plantillas de proyecto para los elementos de proyecto de SharePoint Create item templates and project templates for SharePoint project items
Usar el servicio de proyecto de SharePoint Use the SharePoint project service
Referencia de esquema de plantillas de Visual Studio Visual Studio Template Schema Reference
Editor de imágenes para iconos Image Editor for Icons
Crear un icono u otra imagen (Editor de imágenes para iconos)Creating an Icon or Other Image (Image Editor for Icons)