Compartir a través de


Cómo: Crear un comando de SharePoint

Si desea utilizar el modelo de objetos de servidor en una extensión de herramientas de SharePoint, debe crear un comando de SharePoint personalizado para llamar a la API.Defina el comando de SharePoint en un ensamblado que pueda llamar directamente al modelo de objetos de servidor.

Para obtener más información sobre el propósito de los comandos de SharePoint, vea Llamar a los modelos de objetos de SharePoint.

Para crear un comando de SharePoint

  1. Cree un proyecto de biblioteca de clases con la siguiente configuración:

    [!NOTA]

    No puede implementar un comando de SharePoint en el mismo proyecto que define una extensión de herramientas de SharePoint, porque los comandos de SharePoint tienen como destino .NET Framework 3.5 y la extensión de herramientas de SharePoint tiene como destino .NET Framework 4.Debe definir los comandos de SharePoint que su extensión utilice en un proyecto independiente.Para obtener más información, vea Extensiones de implementación para las Herramientas de SharePoint en Visual Studio.

  2. Agregue referencias a los siguientes ensamblados:

    • Microsoft.VisualStudio.SharePoint.Commands

    • Microsoft.SharePoint

  3. En una clase del proyecto, cree un método que defina su comando de SharePoint.El método debe cumplir las siguientes directrices:

    • Puede tener uno o dos parámetros.

      El primero debe ser un objeto ISharePointCommandContext.Este objeto proporciona el Microsoft.SharePoint.SPSite o Microsoft.SharePoint.SPWeb en el que se ejecuta el comando.También proporciona un objeto ISharePointCommandLogger que se puede utilizar para escribir los mensajes en la Ventana de salida o Lista de errores de Visual Studio.

      El segundo parámetro puede ser un tipo de su elección, pero este parámetro es opcional.Puede agregar este parámetro al comando de SharePoint si necesita pasar los datos de la extensión de herramientas de SharePoint al comando.

    • Puede tener un valor devuelto, pero es opcional.

    • El segundo parámetro y el valor devuelto deben ser un tipo que WCF (Windows Communication Foundation) pueda serializar.Para obtener más información, vea Types Supported by the Data Contract Serializer y Using the XmlSerializer Class.

    • El método puede tener cualquier visibilidad (public, internal o private) y puede ser estático o no estático.

  4. Aplique el SharePointCommandAttribute al método.Este atributo especifica el identificador del comando; este identificador no tiene que coincidir con el nombre del método.

    Debe especificar el mismo identificador único al llamar al comando desde la extensión de herramientas de SharePoint.Para obtener más información, vea Cómo: Ejecutar un comando de SharePoint.

Ejemplo

En el ejemplo de código siguiente se muestra un comando de SharePoint que tiene el identificador Contoso.Commands.UpgradeSolution.Este comando utiliza API en el modelo de objetos de servidor para actualizar a una solución implementada.

<SharePointCommand("Contoso.Commands.UpgradeSolution")> _
Private Sub UpgradeSolution(ByVal context As ISharePointCommandContext, ByVal fullWspPath As String)
    Dim solution As SPSolution = SPFarm.Local.Solutions(Path.GetFileName(fullWspPath))
    If solution Is Nothing Then
        Throw New InvalidOperationException("The solution has not been deployed.")
    End If
    solution.Upgrade(fullWspPath)
End Sub
[SharePointCommand("Contoso.Commands.UpgradeSolution")]
private void UpgradeSolution(ISharePointCommandContext context, string fullWspPath)
{
    SPSolution solution = SPFarm.Local.Solutions[Path.GetFileName(fullWspPath)];

    if (solution == null)
    {
        throw new InvalidOperationException("The solution has not been deployed.");
    }

    solution.Upgrade(fullWspPath);
}

Además del primer parámetro ISharePointCommandContext implícito, este comando también tiene un parámetro de cadena personalizado que contiene la ruta de acceso completa del archivo .wsp que se actualiza en el sitio de SharePoint.Para consultar este código en el contexto de un ejemplo mayor, vea Tutorial: Crear un paso de implementación personalizado para proyectos de SharePoint.

Compilar el código

Para este ejemplo se requieren referencias a los siguientes ensamblados:

  • Microsoft.VisualStudio.SharePoint.Commands

  • Microsoft.SharePoint

Implementar el comando

Para implementar el comando, incluya el ensamblado del comando en el mismo paquete de extensión (VSIX) de Visual Studio con el ensamblado de la extensión que utiliza el comando.También debe agregar una entrada para el ensamblado del comando en el archivo extension.vsixmanifest.Para obtener más información, vea Extensiones de implementación para las Herramientas de SharePoint en Visual Studio.

Vea también

Tareas

Cómo: Ejecutar un comando de SharePoint

Tutorial: Extender el Explorador de servidores para mostrar elementos web

Conceptos

Llamar a los modelos de objetos de SharePoint