Postupy: Vytvoření rozšíření projektu aplikace SharePoint
Pokud chcete přidat funkce jakékoli SharePoint projekt, který je otevřen v aplikaci Visual Studio vytvořte rozšíření projektu. Další informace naleznete v tématu Rozšíření systému projektů služby SharePoint.
Vytvoření rozšíření projektu
Vytvořte projekt knihovny tříd.
Přidejte odkazy do následujících sestavení:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Vytvořit třídu, která implementuje ISharePointProjectExtension rozhraní.
Přidejte System.ComponentModel.Composition.ExportAttribute do třídy. Tento atribut umožňuje vyhledat a načíst Visual Studio vaše ISharePointProjectExtension provedení. Předat ISharePointProjectExtension typu konstruktor atributu.
Vaše implementace metody Initialize užívá členy parametru projectService pro definování chování vašeho rozšíření. Tento parametr je objekt ISharePointProjectService, který poskytuje přístup k událostem definovaným v rozhraní ISharePointProjectEvents.
Příklad
Následující příklad kódu ukazuje, jak vytvořit rozšíření jednoduchého projektu, který zpracovává události projektu SharePoint, které jsou definovány ve většině ISharePointProjectEvents rozhraní. Chcete-li otestovat kód vytvořit projekt SharePoint v Visual Studio a přidejte další projekty do roztoku, změnit hodnoty vlastností projektu nebo odstranit nebo vyloučit projektu. Rozšíření upozorní událostí napsáním zprávy Výstup okna a Seznam chyb okna.
Imports Microsoft.VisualStudio.SharePoint
Imports System.ComponentModel
Imports System.ComponentModel.Composition
Namespace Contoso.ExampleProjectExtension
<Export(GetType(ISharePointProjectExtension))> _
Class ExampleProjectExtension
Implements ISharePointProjectExtension
Private WithEvents projectService As ISharePointProjectService
Public Sub Initialize(ByVal projectService As ISharePointProjectService) _
Implements ISharePointProjectExtension.Initialize
Me.projectService = projectService
End Sub
' A project was added.
Private Sub projectService_ProjectAdded(ByVal sender As Object, ByVal e As SharePointProjectEventArgs) _
Handles projectService.ProjectAdded
Dim project As ISharePointProject = CType(sender, ISharePointProject)
Dim message As String = String.Format("The following project was added: {0}", e.Project.Name)
project.ProjectService.Logger.WriteLine(message, LogCategory.Message)
End Sub
' A project was loaded in the IDE.
Private Sub projectService_ProjectInitialized(ByVal sender As Object, ByVal e As SharePointProjectEventArgs) _
Handles projectService.ProjectInitialized
Dim project As ISharePointProject = CType(sender, ISharePointProject)
Dim message As String = String.Format("The following project is being initialized: {0}", e.Project.Name)
project.ProjectService.Logger.WriteLine(message, LogCategory.Message)
End Sub
' The name of a property was changed.
Private Sub projectService_ProjectNameChanged(ByVal sender As Object, ByVal e As NameChangedEventArgs) _
Handles projectService.ProjectNameChanged
Dim project As ISharePointProject = CType(sender, ISharePointProject)
Dim message As String = String.Format("The project named {0} was changed to {1}.", e.OldName, project.Name)
project.ProjectService.Logger.WriteLine(message, LogCategory.Message)
End Sub
' A project property value was changed.
Private Sub ProjectPropertyChanged(ByVal sender As Object, ByVal e As PropertyChangedEventArgs) _
Handles projectService.ProjectPropertyChanged
Dim project As ISharePointProject = CType(sender, ISharePointProject)
Dim message As String = String.Format("The following property of the {0} project was changed: {1}",
project.Name, e.PropertyName)
project.ProjectService.Logger.WriteLine(message, LogCategory.Message)
End Sub
' A project is being removed or unloaded.
Private Sub projectService_ProjectRemoved(ByVal sender As Object, ByVal e As SharePointProjectEventArgs) _
Handles projectService.ProjectRemoved
Dim project As ISharePointProject = CType(sender, ISharePointProject)
Dim message As String = String.Format("The following project is being removed or unloaded: {0}", e.Project.Name)
project.ProjectService.Logger.WriteLine(message, LogCategory.Message)
End Sub
' A project was removed or unloaded.
Private Sub projectService_ProjectDisposing(ByVal sender As Object, ByVal e As SharePointProjectEventArgs) _
Handles projectService.ProjectDisposing
Dim project As ISharePointProject = CType(sender, ISharePointProject)
Dim message As String = String.Format("The following project was removed or unloaded: {0}", e.Project.Name)
project.ProjectService.Logger.WriteLine(message, LogCategory.Message)
End Sub
End Class
End Namespace
using Microsoft.VisualStudio.SharePoint;
using System;
using System.ComponentModel;
using System.ComponentModel.Composition;
namespace Contoso.ExampleProjectExtension
{
[Export(typeof(ISharePointProjectExtension))]
internal class ExampleProjectExtension : ISharePointProjectExtension
{
public void Initialize(ISharePointProjectService projectService)
{
projectService.ProjectAdded += projectService_ProjectAdded;
projectService.ProjectInitialized += projectService_ProjectInitialized;
projectService.ProjectNameChanged += projectService_ProjectNameChanged;
projectService.ProjectPropertyChanged += projectService_ProjectPropertyChanged;
projectService.ProjectRemoved += projectService_ProjectRemoved;
projectService.ProjectDisposing += projectService_ProjectDisposing;
}
// A project was added.
void projectService_ProjectAdded(object sender, SharePointProjectEventArgs e)
{
ISharePointProject project = (ISharePointProject)sender;
string message = String.Format("The following project was added: {0}", e.Project.Name);
project.ProjectService.Logger.WriteLine(message, LogCategory.Message);
}
// A project is loaded in the IDE.
void projectService_ProjectInitialized(object sender, SharePointProjectEventArgs e)
{
ISharePointProject project = (ISharePointProject)sender;
string message = String.Format("The following project is being initialized: {0}", e.Project.Name);
project.ProjectService.Logger.WriteLine(message, LogCategory.Message);
}
// The name of a project was changed.
void projectService_ProjectNameChanged(object sender, NameChangedEventArgs e)
{
ISharePointProject project = (ISharePointProject)sender;
string message = String.Format("The project named {0} was changed to {1}.", e.OldName, project.Name);
project.ProjectService.Logger.WriteLine(message, LogCategory.Message);
}
// A project property value was changed.
private void projectService_ProjectPropertyChanged(object sender, PropertyChangedEventArgs e)
{
ISharePointProject project = (ISharePointProject)sender;
string message = String.Format("The following property of the {0} project was changed: {1}",
project.Name, e.PropertyName);
project.ProjectService.Logger.WriteLine(message, LogCategory.Message);
}
// A project is being removed or unloaded.
void projectService_ProjectRemoved(object sender, SharePointProjectEventArgs e)
{
ISharePointProject project = (ISharePointProject)sender;
string message = String.Format("The following project is being removed or unloaded: {0}", e.Project.Name);
project.ProjectService.Logger.WriteLine(message, LogCategory.Message);
}
// A project was removed or unloaded.
void projectService_ProjectDisposing(object sender, SharePointProjectEventArgs e)
{
ISharePointProject project = (ISharePointProject)sender;
string message = String.Format("The following project was removed or unloaded: {0}", e.Project.Name);
project.ProjectService.Logger.WriteLine(message, LogCategory.Message);
}
}
}
V tomto příkladu je pomocí projektu služby SharePoint zapsána zpráva do okna Výstup a do okna Seznam chyb. Další informace naleznete v tématu Pomocí služby SharePoint projektu.
Příklady, které ukazují, jak zpracovat ProjectMenuItemsRequested a ProjectPropertiesRequested události, viz Postupy: Přidat položky místní nabídky projektů SharePoint a Postupy: Přidat vlastnost SharePoint projekty.
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é
Koncepty
Rozšíření systému projektů služby SharePoint
Další zdroje
Postupy: Přidat položky místní nabídky projektů SharePoint
Postupy: Přidat vlastnost SharePoint projekty
Podrobné pokyny: Vytvoření přípony projektu služby SharePoint