Como: Executar código quando um projeto do SharePoint é implantada ou Retracted
Se você quiser executar tarefas adicionais quando um projeto do SharePoint é implantado ou cancelado, você pode manipular eventos que são gerados pelo Visual Studio. Para obter mais informações, consulte Implantação e estendendo empacotamento do SharePoint.
Para executar código quando um projeto do SharePoint é implantado ou cancelada
Crie uma extensão de item de projeto, uma extensão de projeto ou uma definição de um novo tipo de item de projeto. Para obter mais informações, consulte os seguintes tópicos:
A extensão de acesso a ISharePointProjectService objeto. Para obter mais informações, consulte Como: Recuperar o serviço de projeto do SharePoint.
Lidar com o DeploymentStarted e DeploymentCompleted eventos do serviço de projeto.
Além de eventos a manipuladores, use o DeploymentEventArgs parâmetro para obter informações sobre a sessão de implantação atual. Por exemplo, você pode determinar qual projeto é na atual sessão de implantação e ele está sendo implantado ou cancelada.
O exemplo de código a seguir demonstra como manipular o DeploymentStarted e DeploymentCompleted eventos em uma extensão de projeto. Essa extensão grava uma mensagem adicional para o saída janela quando a implantação começa e completa para um projeto do SharePoint.
Imports System
Imports Microsoft.VisualStudio.SharePoint
Imports Microsoft.VisualStudio.SharePoint.Deployment
Imports System.ComponentModel.Composition
Namespace Contoso.ProjectDeploymentExtension
<Export(GetType(ISharePointProjectExtension))> _
Friend Class ExampleProjectDeploymentExtension
Implements ISharePointProjectExtension
Private Sub Initialize(ByVal projectService As ISharePointProjectService) _
Implements ISharePointProjectExtension.Initialize
AddHandler projectService.DeploymentStarted, AddressOf DeploymentStarted
AddHandler projectService.DeploymentCompleted, AddressOf DeploymentCompleted
End Sub
Private Sub DeploymentStarted(ByVal Sender As Object, ByVal e As DeploymentEventArgs)
If e.DeploymentContext.IsDeploying Then
Dim message As String = String.Format("Deployment started for the {0} project.",
e.Project.Name)
e.DeploymentContext.Logger.WriteLine(message, LogCategory.Status)
End If
End Sub
Private Sub DeploymentCompleted(ByVal Sender As Object, ByVal e As DeploymentEventArgs)
If e.DeploymentContext.IsDeploying Then
Dim message As String = String.Format("Deployment completed for the {0} project.",
e.Project.Name)
e.DeploymentContext.Logger.WriteLine(message, LogCategory.Status)
End If
End Sub
End Class
End Namespace
using System;
using Microsoft.VisualStudio.SharePoint;
using Microsoft.VisualStudio.SharePoint.Deployment;
using System.ComponentModel.Composition;
namespace Contoso.ProjectDeploymentExtension
{
[Export(typeof(ISharePointProjectExtension))]
internal class ExampleProjectDeploymentExtension : ISharePointProjectExtension
{
public void Initialize(ISharePointProjectService projectService)
{
projectService.DeploymentStarted += ProjectService_DeploymentStarted;
projectService.DeploymentCompleted += ProjectService_DeploymentCompleted;
}
void ProjectService_DeploymentStarted(object sender, DeploymentEventArgs e)
{
if (e.DeploymentContext.IsDeploying)
{
string message = String.Format("Deployment started for the {0} project.",
e.Project.Name);
e.DeploymentContext.Logger.WriteLine(message, LogCategory.Status);
}
}
void ProjectService_DeploymentCompleted(object sender, DeploymentEventArgs e)
{
if (e.DeploymentContext.IsDeploying)
{
string message = String.Format("Deployment completed for the {0} project.",
e.Project.Name);
e.DeploymentContext.Logger.WriteLine(message, LogCategory.Status);
}
}
}
}
Compilando o código
Este exemplo requer referências aos assemblies seguintes:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Implantação da extensão
Para implantar a extensão, criar um Visual Studio pacote de extensão (VSIX) para o assembly e outros arquivos que você deseja distribuir com extensão. Para obter mais informações, consulte Implantar extensões para as ferramentas do SharePoint em Visual Studio.
Consulte também
Tarefas
Como: Executar código quando etapas de implantação são executadas.