Jak: uruchamianie kodu podczas wdrażania kroki są wykonywane.
Jeśli chcesz wykonać dodatkowe zadania dla etapu wdrażania w projekcie programu SharePoint, może obsłużyć zdarzenia, które są wywoływane przez elementy projektu programu SharePoint, przed i po wykonaniu każdego kroku wdrażania programu Visual Studio.Aby uzyskać więcej informacji, zobacz Rozszerzanie programu SharePoint, pakowania i rozmieszczania.
Aby uruchomić kod, gdy są wykonywane kroki wdrażania
Tworzenie rozszerzenie elementu projektu, rozszerzenie projektu lub definicji nowy typ elementu projektu.Aby uzyskać więcej informacji zobacz następujące tematy:
Do rozszerzenia obsługi DeploymentStepStarted i DeploymentStepCompleted zdarzenia ISharePointProjectItemType obiektu (w rozszerzenie elementu projektu lub rozszerzenie projektu) lub ISharePointProjectItemTypeDefinition obiektu (w definicji nowy typ elementu projektu).
W przypadku obsługi, użyj DeploymentStepStartedEventArgs i DeploymentStepCompletedEventArgs parametry, aby uzyskać informacje o kroku wdrażania.Na przykład, można określić, który krok wdrażania jest wykonywany i czy jest w trakcie roztwór rozmieszczone lub wycofana.
Przykład
Poniższy przykład kodu pokazuje sposób obsługi DeploymentStepStarted i DeploymentStepCompleted zdarzenia w rozszerzenie dla instancji List elementu projektu.To rozszerzenie zapisuje dodatkową wiadomość do produkcji okna, gdy Visual Studio odtwarza pulę aplikacji podczas wdrażania i wycofania roztworu.
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);
}
}
}
}
Kompilowanie kodu
W tym przykładzie wymaga odwołania do następujących zestawów:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Wdrażanie rozszerzenia
Aby wdrożyć rozszerzenia, tworzenie Visual Studio extension (VSIX) pakiet Zgromadzenia i inne pliki, które chcesz dystrybuować z rozszerzeniem.Aby uzyskać więcej informacji, zobacz Wdrażanie rozszerzeń dla narzędzia programu SharePoint w programie Visual Studio.
Zobacz też
Zadania
Instruktaż: Tworzenie kroku wdrożenia niestandardowe dla projektów programu SharePoint
Koncepcje
Rozszerzanie programu SharePoint, pakowania i rozmieszczania
Jak: uruchamianie kodu podczas SharePoint projektu jest wdrożony lub Retracted