Udostępnij za pośrednictwem


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

  1. Tworzenie rozszerzenie elementu projektu, rozszerzenie projektu lub definicji nowy typ elementu projektu.Aby uzyskać więcej informacji zobacz następujące tematy:

  2. 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).

  3. 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