Como: executar código quando etapas de implantação são executadas.
Se você quiser executar tarefas adicionais uma etapa de implantação de um projeto do SharePoint, você pode manipular eventos que são gerados por itens de projeto do SharePoint antes e depois Visual Studio executa cada etapa da implantação.Para obter mais informações, consulte Implantação e estendendo empacotamento do SharePoint.
Para executar código quando as etapas de implantação são executadas.
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:
Na extensão, lidar com o DeploymentStepStarted e DeploymentStepCompleted eventos de um ISharePointProjectItemType o objeto (em uma extensão de item de projeto ou a extensão de projeto) ou um ISharePointProjectItemTypeDefinition objeto (em uma definição de um novo tipo de item de projeto).
Além de eventos manipuladores, use o DeploymentStepStartedEventArgs e DeploymentStepCompletedEventArgs parâmetros para obter informações sobre a etapa de implantação.Por exemplo, você pode determinar qual etapa de implantação está em execução e se a solução está sendo implantado ou cancelada.
Exemplo
O exemplo de código a seguir demonstra como manipular o DeploymentStepStarted e DeploymentStepCompleted eventos em uma extensão para o item de projeto de instância de lista.Essa extensão grava uma mensagem adicional para o saída janela quando Visual Studio recicla o pool de aplicativos durante a implantação e o cancelamento da solução.
Imports System
Imports Microsoft.VisualStudio.SharePoint
Imports Microsoft.VisualStudio.SharePoint.Deployment
Imports System.ComponentModel.Composition
Namespace Contoso.ListInstanceDeploymentExtension
<Export(GetType(ISharePointProjectItemTypeExtension))> _
<SharePointProjectItemType("Microsoft.VisualStudio.SharePoint.ListInstance")> _
Friend Class ExampleDeploymentStepExtension
Implements ISharePointProjectItemTypeExtension
Private Sub Initialize(ByVal projectItemType As ISharePointProjectItemType) _
Implements ISharePointProjectItemTypeExtension.Initialize
AddHandler projectItemType.DeploymentStepStarted, AddressOf DeploymentStepStarted
AddHandler projectItemType.DeploymentStepCompleted, AddressOf DeploymentStepCompleted
End Sub
Private Sub DeploymentStepStarted(ByVal Sender As Object, ByVal e As DeploymentStepStartedEventArgs)
If e.DeploymentStepInfo.Id = DeploymentStepIds.RecycleApplicationPool AndAlso
e.DeploymentContext.IsDeploying Then
e.DeploymentContext.Logger.WriteLine("The application pool is about to be " &
"recycled while the solution is being deployed.", LogCategory.Status)
End If
End Sub
Private Sub DeploymentStepCompleted(ByVal Sender As Object, ByVal e As DeploymentStepCompletedEventArgs)
If e.DeploymentStepInfo.Id = DeploymentStepIds.RecycleApplicationPool AndAlso
e.DeploymentContext.IsRetracting Then
e.DeploymentContext.Logger.WriteLine("The application pool was " &
"recycled while the solution is being retracted.", 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.ListInstanceDeploymentExtension
{
[Export(typeof(ISharePointProjectItemTypeExtension))]
[SharePointProjectItemType("Microsoft.VisualStudio.SharePoint.ListInstance")]
internal class ExampleDeploymentStepExtension : ISharePointProjectItemTypeExtension
{
public void Initialize(ISharePointProjectItemType projectItemType)
{
projectItemType.DeploymentStepStarted += DeploymentStepStarted;
projectItemType.DeploymentStepCompleted += DeploymentStepCompleted;
}
private void DeploymentStepStarted(object sender, DeploymentStepStartedEventArgs e)
{
if (e.DeploymentStepInfo.Id == DeploymentStepIds.RecycleApplicationPool &&
e.DeploymentContext.IsDeploying)
{
e.DeploymentContext.Logger.WriteLine("The application pool is about to be " +
"recycled while the solution is being deployed.", LogCategory.Status);
}
}
private void DeploymentStepCompleted(object sender, DeploymentStepCompletedEventArgs e)
{
if (e.DeploymentStepInfo.Id == DeploymentStepIds.RecycleApplicationPool &&
e.DeploymentContext.IsRetracting)
{
e.DeploymentContext.Logger.WriteLine("The application pool was " +
"recycled while the solution is being retracted.", 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 (VSIX) da extensão do pacote para o assembly e outros arquivos que você deseja distribuir com a extensão.Para obter mais informações, consulte Implantação de extensões para as ferramentas de SharePoint no Visual Studio.
Consulte também
Tarefas
Passo a passo: Criando uma etapa de implantação personalizado para projetos do SharePoint
Conceitos
Implantação e estendendo empacotamento do SharePoint
Como: executar código quando um projeto do SharePoint é implantada ou Retracted