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
Cree un proyecto de biblioteca de clases con la siguiente configuración:
Tiene por destino .NET Framework 3.5.Para obtener más información sobre cómo seleccionar la versión de .NET Framework de destino, vea Cómo: Usar como destino una versión de .NET Framework.
Tiene por destino AnyCPU o x64.De forma predeterminada, la plataforma de destino para los proyectos de biblioteca de clases es AnyCPU.Para obtener más información sobre cómo seleccionar la plataforma de destino, vea How to: Optimize an Application for a Specific CPU Type.
[!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.
Agregue referencias a los siguientes ensamblados:
Microsoft.VisualStudio.SharePoint.Commands
Microsoft.SharePoint
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.
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