How to: Execute a SharePoint command
Applies to: Visual Studio Visual Studio for Mac
Note
This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here
If you want to use the server object model in a SharePoint tools extension, you must create a custom SharePoint command to call the API. After you define the command and deploy it with your SharePoint tools extension, your extension can execute the command to call into the SharePoint server object model. To execute the command, use one of the ExecuteCommand methods of an ISharePointConnection object.
For more information about the purpose of SharePoint commands, see Call into the SharePoint object models.
To execute a SharePoint command
In your SharePoint tools extension, get an ISharePointConnection object. The way you get an ISharePointConnection object depends on the type of extension you are creating:
In an extension of the SharePoint project system, use the SharePointConnection property.
For more information about project system extensions, see Extend the SharePoint project system.
In an extension of the SharePoint Connections node in Server Explorer, use the SharePointConnection property. To get an IExplorerNodeContext object, use the Context property.
For more information about Server Explorer extensions, see Extend the SharePoint connections node in Server Explorer.
In code that is not part of an extension of the SharePoint tools, such as a project template wizard, use the SharePointConnection property.
For more information about retrieving the project service, see Use the SharePoint project service.
Call one of the ExecuteCommand methods of the ISharePointConnection object. Pass the name of the command you want to execute to the first argument of the ExecuteCommand method. If your command has a custom parameter, pass that parameter to the second argument of the ExecuteCommand method.
There is a different ExecuteCommand overload for each supported command signature. The following table lists the supported signatures and which overload to use for each signature.
Command signature ExecuteCommand overload to use The command has only the default ISharePointCommandContext parameter and no return value. ExecuteCommand The command has only the default ISharePointCommandContext parameter and a return value. ExecuteCommand The command has two parameters (the default ISharePointCommandContext parameter and a custom parameter) and no return value. ExecuteCommand The command has two parameters and a return value. ExecuteCommand
Example
The following code example demonstrates how to use the ExecuteCommand overload to call the Contoso.Commands.UpgradeSolution
command that is described in How to: Create a SharePoint command.
public void Execute(IDeploymentContext context)
{
context.Logger.WriteLine("Upgrading solution: " + solutionName, LogCategory.Status);
context.Project.SharePointConnection.ExecuteCommand("Contoso.Commands.UpgradeSolution",
solutionFullPath);
}
Private Sub Execute(ByVal context As IDeploymentContext) _
Implements IDeploymentStep.Execute
context.Logger.WriteLine("Upgrading solution: " & solutionName, LogCategory.Status)
context.Project.SharePointConnection.ExecuteCommand("Contoso.Commands.UpgradeSolution", _
solutionFullPath)
End Sub
The Execute
method shown in this example is an implementation of the Execute method of the IDeploymentStep interface in a custom deployment step. To see this code in the context of a larger example, see Walkthrough: Create a custom deployment step for SharePoint projects.
Note the following details about the call to the ExecuteCommand method:
The first parameter identifies the command that you want to call. This string matches the value that you pass to the SharePointCommandAttribute on the command definition.
The second parameter is the value that you want to pass to the custom second parameter of the command. In this case, it is the full path of the .wsp file that is being upgraded to the SharePoint site.
The code does not pass the implicit ISharePointCommandContext parameter to the command. This parameter is passed into the command automatically when you call the command from an extension of the SharePoint project system or an extension of the SharePoint Connections node in Server Explorer. In other types of solutions, such as in a project template wizard that implements the IWizard interface, this parameter is null.
Compile the code
This example requires a reference to the Microsoft.VisualStudio.SharePoint assembly.