Tutorial: Llamar al modelo de objetos de cliente de SharePoint en una extensión del Explorador de servidores

En este tutorial se muestra cómo llamar al modelo de objetos de cliente de SharePoint desde una extensión del nodo Conexiones de SharePoint en el Explorador de servidores. Para obtener más información sobre cómo utilizar el modelo de objetos de cliente de SharePoint, vea Llamar a los modelos de objetos de SharePoint.

En este tutorial se muestran las siguientes tareas:

  • Crear una extensión Visual Studio que extiende el nodo Conexiones de SharePoint del Explorador de servidores de las maneras siguientes:

    • Agrega un nuevo nodo Galería de elementos web bajo cada nodo de sitio de SharePoint en el Explorador de servidores. Este nuevo nodo contiene nodos secundarios que representan cada elemento web en la galería de elementos web del sitio.

    • Define un nuevo tipo de nodo que representa una instancia del elemento web. Este nuevo tipo de nodo es la base de los nodos secundarios bajo el nuevo nodo Galería de elementos web. El nuevo tipo de nodo Elemento web muestra información en la ventana Propiedades sobre el elemento web que representa.

  • Compilar un paquete de extensión de Visual Studio (VSIX) para implementar la extensión.

  • Depurar y probar la extensión.

Nota

La extensión que se crea en este tutorial se parece a la extensión que se creó en Tutorial: Extender el Explorador de servidores para mostrar elementos web. Sin embargo, mientras que en aquel tutorial se utiliza el modelo de objetos de servidor de SharePoint, en este se hacen las mismas tareas con el modelo de objetos de cliente.

Requisitos previos

Necesitará los componentes siguientes en el equipo de desarrollo para completar este tutorial:

El conocimiento de los siguientes conceptos es útil, aunque no necesario, para completar el tutorial.

Crear los proyectos

Para completar este tutorial, debe crear dos proyectos:

  • Un proyecto VSIX para crear el paquete VSIX e implementar la extensión del Explorador de servidores.

  • Un proyecto de biblioteca de clases que implemente la extensión del Explorador de servidores.

Comience el tutorial creando ambos proyectos.

Para crear el proyecto de VSIX

  1. Inicie Visual Studio.

  2. En el menú Archivo, elija Nuevo y haga clic en Proyecto.

  3. En el cuadro de diálogo Nuevo proyecto, expanda el nodo Visual Basic o Visual C# y, a continuación, haga clic en Extensibilidad.

    Nota

    El nodo Extensibilidad solo está disponible si instala Visual Studio 2010 SDK. Para obtener más información, vea la sección anterior sobre los requisitos previos.

  4. En el cuadro combinado de la parte superior del cuadro de diálogo, seleccione .NET Framework 4. Las extensiones de herramientas de SharePoint requieren características de esta versión de .NET Framework.

  5. Haga clic en la plantilla Proyecto VSIX.

  6. En el cuadro Nombre, escriba NodoElementoWeb.

  7. Haga clic en Aceptar.

    Visual Studio agrega el proyecto NodoElementoWeb al Explorador de soluciones.

Para crear la extensión de proyecto

  1. En el Explorador de soluciones, haga clic con el botón secundario en el nodo de la solución, después haga clic en Agregar y, a continuación, en Nuevo proyecto.

    Nota

    En los proyectos de Visual Basic, el nodo de la solución aparece en el Explorador de soluciones solo cuando se activa la casilla Mostrar solución siempre en General, Proyectos y soluciones, Opciones (Cuadro de diálogo).

  2. En el cuadro de diálogo Nuevo proyecto, expanda Visual C# o Visual Basic y, a continuación, haga clic en Windows.

  3. En el cuadro combinado de la parte superior del cuadro de diálogo, seleccione .NET Framework 4.

  4. Seleccione la plantilla de proyecto Biblioteca de clases.

  5. En el cuadro Nombre, escriba ExtensiónNodoElementoWeb.

  6. Haga clic en Aceptar.

    Visual Studio agrega el proyecto ExtensiónNodoElementoWeb a la solución y abre el archivo de código predeterminado Class1.

  7. Elimine el archivo de código Class1 del proyecto.

Configurar el proyecto de extensión

Antes de escribir el código para crear la extensión, tiene que agregar los archivos de código y las referencias de ensamblado a su proyecto y actualizar el espacio de nombres predeterminado.

Para configurar el proyecto

  1. En el proyecto ExtensiónNodoElementoWeb, agregue dos archivos de código con los nombres siguientes:

    • SiteNodeExtension

    • WebPartNodeTypeProvider

  2. Haga clic en la opción Agregar referencia del menú Proyecto.

  3. En la pestaña .NET, presione CTRL y seleccione los ensamblados siguientes y, a continuación, haga clic en Aceptar:

    • Microsoft.SharePoint.Client

    • Microsoft.SharePoint.Client.Runtime

    • Microsoft.VisualStudio.SharePoint

    • System.ComponentModel.Composition

    • System.Windows.Forms

  4. En el menú Proyecto, seleccione Propiedades de ExtensiónNodoElementoWeb.

    Se abrirá el Diseñador de proyectos.

  5. Haga clic en la pestaña Aplicación.

  6. En el cuadro Espacio de nombres predeterminado (C#) o Espacio de nombres de la raíz (Visual Basic), escriba ServerExplorer.SharePointConnections.WebPartNode.

Crear iconos para los nuevos nodos

Cree dos iconos para la extensión Explorador de servidores: uno para el nuevo nodo Galería de elementos web y otro para cada nodo secundario bajo el nodo Galería de elementos web. Más adelante en este tutorial, escribirá código que asocie estos iconos a los nodos.

Para crear iconos para los nodos

  1. En el Diseñador de proyectos del proyecto ExtensiónNodoElementoWeb, haga clic en la pestaña Recursos.

  2. Haga clic Este proyecto no contiene ningún archivo de configuración predeterminado. Haga clic aquí para crear uno.

    Visual Studio crea un archivo de recursos y lo abre en el diseñador.

  3. En la parte superior del diseñador, haga clic en la flecha de lista desplegable del botón Agregar y haga clic en Agregar nuevo icono.

  4. Escriba NodoElementoWeb como nombre del nuevo icono y haga clic en Agregar.

    El nuevo icono se abre en el Editor de imágenes.

  5. Modifique la versión 16x16 del icono para que tenga un diseño que se reconozca con facilidad.

  6. Haga clic en la versión 32x32 del icono.

  7. En el menú Imagen, haga clic en Eliminar tipo de imagen.

  8. Repita los pasos 3 a 7 para agregar un segundo icono a los recursos del proyecto. Denomine este icono Elemento web.

  9. En el Explorador de soluciones, bajo la carpeta Recursos del proyecto ExtensiónNodoElementoWeb, seleccione NodoElementoWeb.ico.

  10. En la ventana Propiedades, seleccione la lista desplegable situada junto a Acción de compilación y, a continuación, cambie el valor por Recurso incrustado.

  11. Repita los últimos dos pasos con ElementoWeb.ico.

Agregar el nodo Galería de elementos web al Explorador de servidores

Cree una clase que agregue el nuevo nodo Galería de elementos web a cada nodo del sitio de SharePoint. Para agregarlo, la clase implementa la interfaz IExplorerNodeTypeExtension. Implemente esta interfaz para extender el comportamiento de un nodo existente en el Explorador de servidores, como agregar un nuevo nodo secundario a un nodo.

Para agregar el nodo Galería de elementos web al Explorador de servidores

  1. En el proyecto ExtensiónNodoElementoWeb, haga doble clic en el archivo de código SiteNodeExtension.

  2. Pegue el código siguiente en este archivo.

    Nota

    Tras agregar este código, el proyecto tendrá algunos errores de compilación. Estos errores desaparecerán al agregar código en pasos posteriores.

    Imports System.Collections.Generic
    Imports System.ComponentModel.Composition
    Imports Microsoft.SharePoint.Client
    Imports Microsoft.VisualStudio.SharePoint
    Imports Microsoft.VisualStudio.SharePoint.Explorer
    
    Namespace ServerExplorer.SharePointConnections.WebPartNode
    
        ' Export attribute: Enables Visual Studio to discover and load this extension.
        ' ExplorerNodeType attribute: Indicates that this class extends SharePoint site nodes in Server Explorer.
        ' SiteNodeExtension class: Represents an extension of SharePoint site nodes in Server Explorer.
        <Export(GetType(IExplorerNodeTypeExtension))> _
        <ExplorerNodeType(ExplorerNodeTypes.SiteNode)> _
        Friend Class SiteNodeExtension
            Implements IExplorerNodeTypeExtension
    
            Private siteUrl As System.Uri = Nothing
    
            Private Sub Initialize(ByVal nodeType As IExplorerNodeType) _
                Implements IExplorerNodeTypeExtension.Initialize
    
                ' The NodeChildrenRequested event is raised when the user expands the
                ' SharePoint site node in Server Explorer.
                AddHandler nodeType.NodeChildrenRequested, AddressOf NodeChildrenRequested
            End Sub
    
            ' Creates the new Web Part Gallery node with the specified icon.
            Private Sub NodeChildrenRequested(ByVal Sender As Object, ByVal e As ExplorerNodeEventArgs)
    
                ' Get the site URL so that it can be used later to access the site
                ' by using the SharePoint client object model.
                siteUrl = e.Node.Context.SiteUrl
    
                ' The CreateWebPartNodes argument is a delegate that Visual Studio calls 
                ' to create the child nodes under the Web Part Gallery node.
                e.Node.ChildNodes.AddFolder("Web Part Gallery", My.Resources.WebPartsNode.ToBitmap(), _
                    AddressOf CreateWebPartNodes)
            End Sub
    
            ' Creates individual Web Part nodes under the new Web Part Gallery node.
            Private Sub CreateWebPartNodes(ByVal parentNode As IExplorerNode)
    
                ' Use the SharePoint client object model to get items from the Web Part gallery.
                Dim Context As ClientContext = New ClientContext(siteUrl.AbsoluteUri)
                Dim WebPartsGallery As List = Context.Web.GetCatalog(CType(ListTemplateType.WebPartCatalog, Integer))
                Dim WebParts As ListItemCollection = WebPartsGallery.GetItems(New CamlQuery())
    
                ' Request the FieldValuesAsText property values with the Web Part items.
                Context.Load(WebParts, Function(listItems) listItems.Include(Function(i) i.FieldValuesAsText))
                Context.ExecuteQuery()
    
                If WebParts IsNot Nothing Then
                    For Each WebPart As ListItem In WebParts
    
                        ' Create a new annotation object to store the current Web Part item with the new node.
                        Dim Annotations = New Dictionary(Of Object, Object)()
                        Annotations.Add(GetType(ListItem), WebPart)
    
                        ' Create the new node for the current Web Part item.
                        parentNode.ChildNodes.Add(WebPartNodeTypeProvider.WebPartNodeTypeId, _
                            WebPart.FieldValuesAsText.FieldValues("Title"), Annotations)
                    Next
                End If
            End Sub
        End Class
    End Namespace
    
    using System.Collections.Generic;
    using System.ComponentModel.Composition;
    using Microsoft.SharePoint.Client;
    using Microsoft.VisualStudio.SharePoint;
    using Microsoft.VisualStudio.SharePoint.Explorer;
    
    namespace ServerExplorer.SharePointConnections.WebPartNode
    {
        // Enables Visual Studio to discover and load this extension.
        [Export(typeof(IExplorerNodeTypeExtension))]        
    
        // Indicates that this class extends SharePoint site nodes in Server Explorer.
        [ExplorerNodeType(ExplorerNodeTypes.SiteNode)]
    
        // Represents an extension of SharePoint site nodes in Server Explorer.
        internal class SiteNodeExtension : IExplorerNodeTypeExtension
        {
            private System.Uri siteUrl = null;
    
            public void Initialize(IExplorerNodeType nodeType)
            {
                // The NodeChildrenRequested event is raised when the user expands the
                // SharePoint site node in Server Explorer.
                nodeType.NodeChildrenRequested += NodeChildrenRequested;
            }
    
            // Creates the new Web Part Gallery node with the specified icon.
            private void NodeChildrenRequested(object sender, ExplorerNodeEventArgs e)
            {
                // Get the site URL so that it can be used later to access the site
                // by using the SharePoint client object model.
                siteUrl = e.Node.Context.SiteUrl;
    
                // The CreateWebPartNodes argument is a delegate that Visual Studio calls 
                // to create the child nodes under the Web Part Gallery node.
                e.Node.ChildNodes.AddFolder("Web Part Gallery", Properties.Resources.WebPartsNode.ToBitmap(), 
                    CreateWebPartNodes);
            }
    
            // Creates individual Web Part nodes under the new Web Part Gallery node.
            private void CreateWebPartNodes(IExplorerNode parentNode)
            {
                // Use the SharePoint client object model to get items from the Web Part gallery.
                ClientContext context = new ClientContext(siteUrl.AbsoluteUri);
                List webPartsGallery = context.Web.GetCatalog((int)ListTemplateType.WebPartCatalog);
                ListItemCollection webParts = webPartsGallery.GetItems(new CamlQuery());
    
                // Request the FieldValuesAsText property values with the Web Part items.
                context.Load(webParts, listItems => listItems.Include(i => i.FieldValuesAsText));
                context.ExecuteQuery();
    
                if (webParts != null)
                {
                    foreach (ListItem webPart in webParts)
                    {
                        // Create a new annotation object to store the current Web Part item with the new node.
                        var annotations = new Dictionary<object, object>() 
                        { 
                            { typeof(ListItem), webPart } 
                        };
    
                        // Create the new node for the current Web Part item.
                        parentNode.ChildNodes.Add(WebPartNodeTypeProvider.WebPartNodeTypeId,
                            webPart.FieldValuesAsText.FieldValues["Title"], annotations);
                    }
                }
            }
        }
    }
    

Definir un tipo de nodo que represente un elemento web

Cree una clase que defina un nuevo tipo de nodo que represente un elemento web. Visual Studio utiliza este nuevo tipo de nodo para mostrar los nodos secundarios del nodo Galería de elementos web. Cada uno de estos nodos secundarios representa un elemento web único en el sitio de SharePoint.

Para definir el nuevo tipo de nodo, la clase implementa la interfaz IExplorerNodeTypeProvider. Implemente esta interfaz para definir un nuevo tipo de nodo en el Explorador de servidores todas las veces que desee.

Para definir el tipo de nodo Elemento web

  1. En el proyecto ExtensiónNodoElementoWeb, haga doble clic en el archivo de código WebPartNodeTypeProvider.

  2. Pegue el código siguiente en este archivo.

    Imports System
    Imports System.Collections.Generic
    Imports System.Windows.Forms
    Imports System.ComponentModel.Composition
    Imports Microsoft.SharePoint.Client
    Imports Microsoft.VisualStudio.SharePoint
    Imports Microsoft.VisualStudio.SharePoint.Explorer
    
    Namespace ServerExplorer.SharePointConnections.WebPartNode
    
        ' Export attribute: Enables Visual Studio to discover and load this extension.
        ' ExplorerNodeType attribute: Specifies the ID for this new node type.
        ' WebPartNodeTypeProvider class: Defines a new node type that represents a Web Part on a SharePoint site.
        <Export(GetType(IExplorerNodeTypeProvider))> _
        <ExplorerNodeType(WebPartNodeTypeProvider.WebPartNodeTypeId)> _
        Friend Class WebPartNodeTypeProvider
            Implements IExplorerNodeTypeProvider
    
            Friend Const WebPartNodeTypeId As String = "Contoso.WebPart"
    
            Private Sub InitializeType(ByVal typeDefinition As IExplorerNodeTypeDefinition) _
            Implements IExplorerNodeTypeProvider.InitializeType
                typeDefinition.DefaultIcon = My.Resources.WebPart.ToBitmap()
                typeDefinition.IsAlwaysLeaf = True
    
                AddHandler typeDefinition.NodePropertiesRequested, AddressOf NodePropertiesRequested
                AddHandler typeDefinition.NodeMenuItemsRequested, AddressOf NodeMenuItemsRequested
            End Sub
    
            ' Retrieves properties that are displayed in the Properties window when
            ' a Web Part node is selected.
            Private Sub NodePropertiesRequested(ByVal Sender As Object, _
                ByVal e As ExplorerNodePropertiesRequestedEventArgs)
    
                Dim webPart = e.Node.Annotations.GetValue(Of ListItem)()
                Dim propertySource = e.Node.Context.CreatePropertySourceObject( _
                    webPart.FieldValuesAsText.FieldValues)
                e.PropertySources.Add(propertySource)
            End Sub
    
            Private Sub NodeMenuItemsRequested(ByVal Sender As Object, _
                ByVal e As ExplorerNodeMenuItemsRequestedEventArgs)
                Dim WebPartNodeMenuItem As IMenuItem = e.MenuItems.Add("Display Message")
                AddHandler WebPartNodeMenuItem.Click, AddressOf MenuItemClick
            End Sub
    
            Private Sub MenuItemClick(ByVal Sender As Object, ByVal e As MenuItemEventArgs)
                Dim ParentNode As IExplorerNode = TryCast(e.Owner, IExplorerNode)
                If ParentNode IsNot Nothing Then
                    Dim webPart = ParentNode.Annotations.GetValue(Of ListItem)()
                    MessageBox.Show("You clicked the context menu for the following Web part: " & _
                        webPart.FieldValuesAsText.FieldValues("Title") + ".", "Web Part Menu Command")
                End If
            End Sub
        End Class
    End Namespace
    
    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;
    using System.ComponentModel.Composition;
    using Microsoft.SharePoint.Client;
    using Microsoft.VisualStudio.SharePoint;
    using Microsoft.VisualStudio.SharePoint.Explorer;
    
    namespace ServerExplorer.SharePointConnections.WebPartNode
    {
        // Enables Visual Studio to discover and load this extension.
        [Export(typeof(IExplorerNodeTypeProvider))]
    
        // Specifies the ID for this new node type.
        [ExplorerNodeType(WebPartNodeTypeProvider.WebPartNodeTypeId)]
    
        // Defines a new node type that represents a Web Part on a SharePoint site.
        internal class WebPartNodeTypeProvider : IExplorerNodeTypeProvider
        {
            internal const string WebPartNodeTypeId = "Contoso.WebPart";
    
            public void InitializeType(IExplorerNodeTypeDefinition typeDefinition)
            {
                typeDefinition.DefaultIcon = Properties.Resources.WebPart.ToBitmap();
                typeDefinition.IsAlwaysLeaf = true;
    
                typeDefinition.NodePropertiesRequested += NodePropertiesRequested;
                typeDefinition.NodeMenuItemsRequested += NodeMenuItemsRequested;
            }
    
            // Retrieves properties that are displayed in the Properties window when
            // a Web Part node is selected.
            private void NodePropertiesRequested(object sender,
                ExplorerNodePropertiesRequestedEventArgs e)
            {
                var webPart = e.Node.Annotations.GetValue<ListItem>();
                object propertySource = e.Node.Context.CreatePropertySourceObject(
                    webPart.FieldValuesAsText.FieldValues);
                e.PropertySources.Add(propertySource);
            }
    
            private void NodeMenuItemsRequested(
                object sender, ExplorerNodeMenuItemsRequestedEventArgs e)
            {
                e.MenuItems.Add("Display Message").Click += MenuItemClick;
            }
    
            private void MenuItemClick(object sender, MenuItemEventArgs e)
            {
                IExplorerNode parentNode = e.Owner as IExplorerNode;
    
                if (parentNode != null)
                {
                    var webPart = parentNode.Annotations.GetValue<ListItem>();
                    MessageBox.Show("You clicked the context menu for the following Web part: " +
                        webPart.FieldValuesAsText.FieldValues["Title"] + ".", "Web Part Menu Command");
                }
            }
        }
    }
    

Punto de control

En este punto del tutorial, todo el código del nodo Galería de elementos web está en el proyecto. Compile la solución para asegurarse de que el proyecto se compila sin errores.

Para compilar la solución

  • En el menú Generar, seleccione Generar solución.

Crear un paquete VSIX para implementar la extensión

Para implementar la extensión, utilice el proyecto VSIX en la solución para crear un paquete VSIX. Primero, configure el paquete VSIX modificando el archivo source.extension.vsixmanifest incluido en el proyecto. A continuación, cree el paquete VSIX compilando la solución.

Para configurar el paquete VSIX

  1. En el Explorador de soluciones, bajo el proyecto NodoElementoWeb, haga doble clic en el archivo source.extension.vsixmanifest.

    Visual Studio abre el archivo en el editor de manifiestos. El archivo source.extension.vsixmanifest es la base del archivo extension.vsixmanifest que requieren todos los paquetes VSIX. Para obtener más información sobre este archivo, vea VSIX Extension Schema Reference.

  2. En el cuadro Nombre de producto, escriba Nodo Galería de elementos web para Explorador de servidores.

  3. En el cuadro Autor, escriba Contoso.

  4. En el cuadro Descripción, escriba Agrega un nodo Galería de elementos web personalizado a un nodo Conexiones de SharePoint en el Explorador de servidores.

  5. En la sección Contenido del editor, haga clic en el botón Agregar contenido.

  6. En el cuadro de diálogo Agregar contenido, en el cuadro de lista Seleccione un tipo de contenido, elija MEF Component.

    Nota

    Este valor corresponde al elemento MefComponent del archivo extension.vsixmanifest. Este elemento especifica el nombre de un ensamblado de extensión en el paquete VSIX. Para obtener más información, vea MEFComponent Element (VSX Schema).

  7. En Seleccione un origen, haga clic en el botón de radio Proyecto y seleccione WebPartNodeExtension en el cuadro de lista situado al lado.

  8. Haga clic en Aceptar.

  9. En el menú Generar, haga clic en Generar solución. Asegúrese de que la solución se compila sin errores.

  10. Abra la carpeta de salida de compilación del proyecto NodoElementoWeb. Asegúrese de que la carpeta contiene el archivo NodoElementoWeb.vsix.

    De forma predeterminada, la carpeta de resultado de compilación es .. \bin\Debug, que se encuentra bajo la carpeta que contiene el archivo de proyecto.

Probar la extensión

Ya puede probar el nuevo nodo Galería de elementos web en el Explorador de servidores. Primero, empiece a depurar el proyecto de extensión en una instancia experimental de Visual Studio. A continuación, utilice el nuevo nodo Elementos web en la instancia experimental de Visual Studio.

Para comenzar a depurar la extensión

  1. Reinicie Visual Studio con privilegios de administrador y abra la solución NodoElementoWeb.

  2. En el proyecto ExtensiónNodoElementoWeb, abra el archivo de código SiteNodeExtension y agregue un punto de interrupción a las primeras líneas de código en los métodos NodeChildrenRequested y CreateWebPartNodes.

  3. Presione F5 para iniciar la depuración.

    Visual Studio instala la extensión en %UserProfile%\AppData\Local\Microsoft\VisualStudio\10.0Exp\Extensions\Contoso\Extensión Nodo Galería de elementos web para Explorador de servidores\1.0 e inicia una instancia experimental de Visual Studio. Probará el elemento de proyecto en esta instancia de Visual Studio.

Para probar la extensión

  1. En la instancia experimental de Visual Studio, en el menú Ver, haga clic en Explorador de servidores.

  2. Compruebe que el sitio de SharePoint que desea utilizar para probar aparece bajo el nodo Conexiones de SharePoint en el Explorador de servidores. Si no aparece, siga estos pasos:

    1. Haga clic con el botón secundario en Conexiones de SharePoint y después haga clic en Agregar conexión.

    2. En el cuadro de diálogo Agregar conexión de SharePoint, escriba la dirección URL del sitio de SharePoint al que desea conectarse. Para especificar el sitio de SharePoint en el equipo de desarrollo, tipo https://localhost.

    3. Haga clic en Aceptar.

  3. Expanda el nodo de conexión del sitio (el nodo en el que aparece la dirección URL del sitio) y, a continuación, expanda un nodo de sitio secundario (por ejemplo, Sitio de grupo).

  4. 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 NodeChildrenRequested. Presione F5 para continuar y depurar el proyecto.

  5. En la instancia experimental de Visual Studio, compruebe que un nuevo nodo denominado Galería de elementos web aparece bajo el nodo del sitio de primer nivel. Expanda el nodo Galería de elementos web.

  6. 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 CreateWebPartNodes. Presione F5 para continuar y depurar el proyecto.

  7. En la instancia experimental de Visual Studio, compruebe que todos los elementos web del sitio conectado aparecen bajo el nodo Galería de elementos web en el Explorador de servidores.

  8. Haga clic con el botón secundario en uno de los elementos web y haga clic en Propiedades.

  9. Compruebe que los detalles sobre el elemento web aparecen en la ventana Propiedades.

  10. En el Explorador de servidores, haga clic con el botón secundario de nuevo en el mismo elemento web y haga clic en Mostrar mensaje.

    Compruebe que aparece un cuadro de mensajes. Haga clic en Aceptar en el cuadro de mensajes.

Desinstalar la extensión de Visual Studio

Después de terminar de probar la extensión, desinstale la extensión de Visual Studio.

Para desinstalar la extensión

  1. En la instancia experimental de Visual Studio, en el menú Herramientas, haga clic en Administrador de extensiones.

    Se abre el cuadro de diálogo Administrador de extensiones.

  2. En la lista de extensiones, haga clic en Extensión Nodo Galería de elementos web para Explorador de servidores y, a continuación, en Desinstalar.

  3. En el cuadro de diálogo que aparece, haga clic en para confirmar la desinstalación.

  4. Haga clic en Reiniciar ahora para completar la desinstalación. También se desinstala el elemento de proyecto.

  5. Cierre ambas instancias de Visual Studio (la instancia experimental y la instancia de Visual Studio que tiene abierta la solución NodoElementoWeb).

Vea también

Tareas

Tutorial: Extender el Explorador de servidores para mostrar elementos web

Crear un nuevo mapa de bits u otra imagen

Referencia

Editor de imágenes

Conceptos

Llamar a los modelos de objetos de SharePoint

Otros recursos

Extender el nodo Conexiones de SharePoint en el Explorador de servidores