Gewusst wie: Ausführen von Code beim Bereitstellen oder Zurückziehen eines SharePoint-Projekts
Wenn Sie beim Bereitstellen oder Zurückziehen eines SharePoint-Projekts zusätzliche Aufgaben ausführen möchten, können Sie von Visual Studio ausgelöste Ereignisse behandeln.Weitere Informationen finden Sie unter Erweitern von SharePoint-Packen und -Bereitstellen.
So führen Sie Code beim Bereitstellen oder Zurückziehen eines SharePoint-Projekts aus
Erstellen Sie eine Projektelementerweiterung, eine Projekterweiterung oder eine Definition eines neuen Projektelementtyps.Weitere Informationen finden Sie unter den folgenden Themen:
Greifen Sie in der Erweiterung auf das ISharePointProjectService-Objekt zu.Weitere Informationen finden Sie unter Gewusst wie: Abrufen des SharePoint-Projektdiensts.
Behandeln Sie das DeploymentStarted-Ereignis und das DeploymentCompleted-Ereignis des Projektdiensts.
Rufen Sie in den Ereignishandlern mithilfe des DeploymentEventArgs-Parameters Informationen zur aktuellen Bereitstellungssitzung ab.So können Sie beispielsweise ermitteln, welches Projekt sich in der aktuellen Bereitstellungssitzung befindet und ob es bereitgestellt oder zurückgezogen wird.
Im folgenden Codebeispiel wird die Behandlung des DeploymentStarted-Ereignisses und des DeploymentCompleted-Ereignisses in einer Projekterweiterung veranschaulicht.Von dieser Erweiterung wird bei Start und Fertigstellung der Bereitstellung für ein SharePoint-Projekt eine zusätzliche Meldung in das Ausgabefenster geschrieben.
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);
}
}
}
}
Kompilieren des Codes
Für dieses Beispiel sind Verweise auf die folgenden Assemblys erforderlich:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Bereitstellen der Erweiterung
Erstellen Sie ein Visual Studio-Erweiterungspaket (VSIX) für die Assembly und alle weiteren Dateien, die Sie mit der Erweiterung verteilen möchten, um die Erweiterung bereitzustellen.Weitere Informationen erhalten Sie unter Bereitstellen von Erweiterungen für die SharePoint-Tools in Visual Studio.
Siehe auch
Konzepte
Erweitern von SharePoint-Packen und -Bereitstellen
Gewusst wie: Ausführen von Code bei der Ausführung von Bereitstellungsschritten