Postupy: Spuštění kódu při vykonávání postupu nasazení
Pokud chcete provádět další úlohy pro krok nasazení v projektu SharePoint, může zpracovávat události, které jsou aktivovány položkami projektu SharePoint před a po tom, co Visual Studio provede každý krok nasazení. Další informace naleznete v tématu Rozšíření balení a nasazení služby SharePoint.
Chcete-li spustit kód při vykonávání postupu nasazení
Vytvořte rozšíření položky projektu, rozšíření projektu nebo definici nového typu položky projektu. Další informace naleznete v následujících tématech:
V rozšíření zpracujte události DeploymentStepStarted a DeploymentStepCompleted objektu ISharePointProjectItemType (v rozšíření položky projektu nebo rozšíření projektu) nebo objektu ISharePointProjectItemTypeDefinition (v definici nového typu položky projektu).
V obslužné rutině události použijte parametry DeploymentStepStartedEventArgs a DeploymentStepCompletedEventArgs pro získání informací o kroku nasazení. Například můžete určit, který krok nasazení se provádí a zda řešení je nasazováno nebo stahováno.
Příklad
Následující příklad kódu ukazuje, jak zpracovat události DeploymentStepStarted a DeploymentStepCompleted v rozšíření pro seznam instance položky projektu. Toto rozšíření zapíše další zprávu do okna Výstup v případě, že aplikace Visual Studio recykluje fond aplikací při nasazování a stahování řešení.
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);
}
}
}
}
Probíhá kompilace kódu
Tento příklad vyžaduje odkazy na následující sestavení:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Nasazování rozšíření
Chcete-li nasadit rozšíření, vytvořte Visual Studio balíček rozšíření (VSIX) pro sestavení a všechny další soubory, které chcete distribuovat s rozšířením. Další informace naleznete v tématu Nasazování rozšíření pro nástroje služby SharePoint v aplikaci Visual Studio.
Viz také
Úkoly
Podrobné pokyny: Vytvoření vlastního kroku nasazení pro SharePoint projekty
Další zdroje
Rozšíření balení a nasazení služby SharePoint
Postupy: Spuštění kódu pokud je SharePoint projekt nasazen nebo stažen