Visual Studio 2010 の SharePoint プロジェクト システムは、プロジェクト項目の種類を独自に作成することによって拡張することができます。 このチュートリアルでは、SharePoint プロジェクトに追加できるプロジェクト項目を作成します。これは SharePoint サイトにカスタム動作を作成するためのプロジェクト項目です。 SharePoint サイトの [サイトの操作] メニューに対し、カスタム動作によってメニュー項目を追加します。
このチュートリアルでは、次のタスクについて説明します。
カスタム動作のための SharePoint プロジェクト項目の新しい種類を定義する Visual Studio 拡張機能の作成。 この新しいプロジェクト項目の種類では、次に示すいくつかのカスタム機能を実装します。
プロジェクト項目に関連したさまざまな追加タスク (Visual Studio でカスタム動作を作成するためのデザイナーを表示するなど) の開始点となるショートカット メニュー。
開発者がプロジェクト項目やそれを含んでいるプロジェクトの特定のプロパティを変更したときに実行されるコード。
ソリューション エクスプローラーで、プロジェクト項目の横に表示されるカスタム アイコン。
対応するプロジェクト項目用の Visual Studio 項目テンプレートを作成する。
プロジェクト項目テンプレートや拡張機能のアセンブリを配置するための Visual Studio Extension (VSIX) パッケージを構築する。
プロジェクト項目のデバッグとテストを行う。
これは、独立したチュートリアルです。 このチュートリアルを完了すると、項目テンプレートにウィザードを追加してプロジェクト項目を拡張できるようになります。 詳細については、「チュートリアル: 項目テンプレートに基づくカスタム動作プロジェクト項目の作成 (パート 2)」を参照してください。
注意
このチュートリアル用の完全なプロジェクト、コード、およびその他のファイルを含むサンプルは、https://go.microsoft.com/fwlink/?LinkId=191369 からダウンロードできます。
必須コンポーネント
このチュートリアルを実行するには、開発コンピューターに次のコンポーネントが必要です。
サポート対象エディションの Microsoft Windows、SharePoint、および Visual Studio。 詳細については、「SharePoint ソリューションの開発要件」を参照してください。
Visual Studio 2010 SDK。 このチュートリアルでは、プロジェクト項目を配置するための VSIX パッケージを、SDK の VSIX プロジェクト テンプレートを使用して作成します。 詳細については、「Visual Studio の SharePoint ツールの拡張」を参照してください。
次の概念に関する知識があると役に立ちますが、チュートリアルを実行するうえで必須というわけではありません。
SharePoint のカスタム動作。 詳細については、「Custom Action (カスタム動作)」を参照してください。
Visual Studio の項目テンプレート。 詳細については、「Visual Studio テンプレートの概要」を参照してください。
プロジェクトの作成
このチュートリアルを実行するには、3 つのプロジェクトを作成する必要があります。
VSIX プロジェクト。 このプロジェクトは、SharePoint プロジェクト項目を配置するための VSIX パッケージを作成します。
項目テンプレート プロジェクト。 このプロジェクトは、SharePoint プロジェクト項目を SharePoint プロジェクトに追加するために使用できる項目テンプレートを作成します。
クラス ライブラリ プロジェクト。 このプロジェクトは、SharePoint プロジェクト項目の動作を定義する Visual Studio 拡張機能を実装します。
この 2 つのプロジェクトを作成することから始めます。
VSIX プロジェクトを作成するには
Visual Studio を起動します。
[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
[新しいプロジェクト] ダイアログ ボックスの上部のコンボ ボックスで、[.NET Framework 4] が選択されていることを確認します。
[新しいプロジェクト] ダイアログ ボックスで、[Visual C#] ノードまたは [Visual Basic] ノードを展開し、[機能拡張] ノードをクリックします。
注意
[機能拡張] ノードは、Visual Studio 2010 SDK がインストールされている場合にのみ使用できます。 詳細については、冒頭の「前提条件」を参照してください。
[VSIX プロジェクト] テンプレートをクリックします。
[プロジェクト名] ボックスに「CustomActionProjectItem」と入力します。
[OK] をクリックします。
Visual Studio のソリューション エクスプローラーに CustomActionProjectItem プロジェクトが追加されます。
項目テンプレート プロジェクトを作成するには
ソリューション エクスプローラーでソリューション ノードを右クリックし、[追加] をクリックして、[新しいプロジェクト] をクリックします。
注意
Visual Basic プロジェクトでソリューション エクスプローラーにソリューション ノードが表示されるのは、[全般] ([オプション] ダイアログ ボックス - [プロジェクトおよびソリューション])の [常にソリューションを表示] チェック ボックスがオンになっている場合だけです。
[新しいプロジェクト] ダイアログ ボックスの上部のコンボ ボックスで、[.NET Framework 4] が選択されていることを確認します。
[新しいプロジェクト] ダイアログ ボックスで、[Visual C#] ノードまたは [Visual Basic] ノードを展開し、[機能拡張] ノードをクリックします。
プロジェクト テンプレートの一覧で、[C# 項目テンプレート] または [Visual Basic 項目テンプレート] を選択します。
[名前] ボックスに「ItemTemplate」と入力します。
[OK] をクリックします。
Visual Studio のソリューションに ItemTemplate プロジェクトが追加されます。
拡張機能プロジェクトを作成するには
ソリューション エクスプローラーでソリューション ノードを右クリックし、[追加] をクリックして、[新しいプロジェクト] をクリックします。
[新しいプロジェクト] ダイアログ ボックスの上部のコンボ ボックスで、[.NET Framework 4] が選択されていることを確認します。
[新しいプロジェクト] ダイアログ ボックスで、[Visual C#] ノードまたは [Visual Basic] ノードを展開し、[Windows] ノードをクリックします。
[クラス ライブラリ] プロジェクト テンプレートを選択します。
[名前] ボックスに「ProjectItemDefinition」と入力します。
[OK] をクリックします。
Visual Studio によって、ProjectItemDefinition プロジェクトがソリューションに追加され、既定の Class1 コード ファイルが開きます。
Class1 コード ファイルをプロジェクトから削除します。
拡張機能プロジェクトの構成
SharePoint プロジェクト項目の種類を定義するためのコードを記述する前に、コード ファイルおよびアセンブリ参照を拡張機能プロジェクトに追加しておく必要があります。
プロジェクトを構成するには
ProjectItemDefinition プロジェクトに、CustomAction という名前のコード ファイルを追加します。
[プロジェクト] メニューの [参照の追加] をクリックします。
[.NET] タブで、Ctrl キーを押しながら次のアセンブリをクリックし、[OK] をクリックします。
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
System.Windows.Forms
新しい SharePoint プロジェクト項目の種類の定義
ISharePointProjectItemTypeProvider インターフェイスを実装するクラスを作成して、新しいプロジェクト項目の種類の動作を定義します。 このインターフェイスは、新しい種類のプロジェクト項目を定義するたびに必ず実装します。
新しい SharePoint プロジェクト項目の種類を定義するには
ProjectItemDefinition プロジェクトで、CustomAction コード ファイルを開きます。
このファイル内のコードを次のコードに置き換えます。
Imports System Imports System.Diagnostics Imports System.ComponentModel Imports System.ComponentModel.Composition Imports Microsoft.VisualStudio.SharePoint Namespace Contoso.SharePointProjectItems.CustomAction ' Export attribute: Enables Visual Studio to discover and load this extension. ' SharePointProjectItemType attribute: Specifies the ID for this new project item type. This string must ' match the value of the Type attribute of the ProjectItem element in the .spdata file for ' the project item. ' SharePointProjectItemIcon attribute: Specifies the icon to display with this project item in Solution Explorer. ' CustomActionProjectItemTypeProvider class: Defines a new type of project item that can be used to create a custom ' action on a SharePoint site. <Export(GetType(ISharePointProjectItemTypeProvider))> _ <SharePointProjectItemType("Contoso.CustomAction")> _ <SharePointProjectItemIcon("ProjectItemDefinition.CustomAction_SolutionExplorer.ico")> _ Partial Friend Class CustomActionProjectItemTypeProvider Implements ISharePointProjectItemTypeProvider Private WithEvents projectItemTypeDefinition As ISharePointProjectItemTypeDefinition ' Configures the behavior of the project item type. Private Sub InitializeType(ByVal projectItemTypeDefinition As ISharePointProjectItemTypeDefinition) _ Implements ISharePointProjectItemTypeProvider.InitializeType projectItemTypeDefinition.Name = "CustomAction" projectItemTypeDefinition.SupportedDeploymentScopes = _ SupportedDeploymentScopes.Site Or SupportedDeploymentScopes.Web projectItemTypeDefinition.SupportedTrustLevels = SupportedTrustLevels.All Me.projectItemTypeDefinition = projectItemTypeDefinition End Sub Private Const DesignerMenuItemText As String = "View Custom Action Designer" Private Sub ProjectItemMenuItemsRequested(ByVal Sender As Object, _ ByVal e As SharePointProjectItemMenuItemsRequestedEventArgs) _ Handles projectItemTypeDefinition.ProjectItemMenuItemsRequested Dim viewDesignerMenuItem As IMenuItem = e.ViewMenuItems.Add(DesignerMenuItemText) AddHandler viewDesignerMenuItem.Click, AddressOf MenuItemClick End Sub Private Sub MenuItemClick(ByVal Sender As Object, ByVal e As MenuItemEventArgs) Dim projectItem As ISharePointProjectItem = CType(e.Owner, ISharePointProjectItem) Dim message As String = String.Format("You clicked the menu on the {0} item. " & _ "You could perform some related task here, such as displaying a designer " & _ "for the custom action.", projectItem.Name) System.Windows.Forms.MessageBox.Show(message, "Contoso Custom Action") End Sub Private Sub ProjectItemNameChanged(ByVal Sender As Object, ByVal e As NameChangedEventArgs) _ Handles projectItemTypeDefinition.ProjectItemNameChanged Dim projectItem As ISharePointProjectItem = CType(Sender, ISharePointProjectItem) Dim message As String = String.Format("The name of the {0} item changed to: {1}", _ e.OldName, projectItem.Name) projectItem.Project.ProjectService.Logger.WriteLine(message, LogCategory.Message) End Sub End Class End Namespace
using System; using System.Diagnostics; using System.ComponentModel; using System.ComponentModel.Composition; using Microsoft.VisualStudio.SharePoint; namespace Contoso.SharePointProjectItems.CustomAction { // Enables Visual Studio to discover and load this extension. [Export(typeof(ISharePointProjectItemTypeProvider))] // Specifies the ID for this new project item type. This string must match the value of the // Type attribute of the ProjectItem element in the .spdata file for the project item. [SharePointProjectItemType("Contoso.CustomAction")] // Specifies the icon to display with this project item in Solution Explorer. [SharePointProjectItemIcon("ProjectItemDefinition.CustomAction_SolutionExplorer.ico")] // Defines a new type of project item that can be used to create a custom action on a SharePoint site. internal partial class CustomActionProjectItemTypeProvider : ISharePointProjectItemTypeProvider { // Implements IProjectItemTypeProvider.InitializeType. Configures the behavior of the project item type. public void InitializeType(ISharePointProjectItemTypeDefinition projectItemTypeDefinition) { projectItemTypeDefinition.Name = "CustomAction"; projectItemTypeDefinition.SupportedDeploymentScopes = SupportedDeploymentScopes.Site | SupportedDeploymentScopes.Web; projectItemTypeDefinition.SupportedTrustLevels = SupportedTrustLevels.All; projectItemTypeDefinition.ProjectItemNameChanged += ProjectItemNameChanged; projectItemTypeDefinition.ProjectItemMenuItemsRequested += ProjectItemMenuItemsRequested; } private const string designerMenuItemText = "View Custom Action Designer"; private void ProjectItemMenuItemsRequested(object sender, SharePointProjectItemMenuItemsRequestedEventArgs e) { e.ViewMenuItems.Add(designerMenuItemText).Click += MenuItemClick; } private void MenuItemClick(object sender, MenuItemEventArgs e) { ISharePointProjectItem projectItem = (ISharePointProjectItem)e.Owner; string message = String.Format("You clicked the menu on the {0} item. " + "You could perform some related task here, such as displaying a designer " + "for the custom action.", projectItem.Name); System.Windows.Forms.MessageBox.Show(message, "Contoso Custom Action"); } private void ProjectItemNameChanged(object sender, NameChangedEventArgs e) { ISharePointProjectItem projectItem = (ISharePointProjectItem)sender; string message = String.Format("The name of the {0} item changed to: {1}", e.OldName, projectItem.Name); projectItem.Project.ProjectService.Logger.WriteLine(message, LogCategory.Message); } } }
ソリューション エクスプローラーに表示されるプロジェクト項目用アイコンの作成
カスタム SharePoint プロジェクト項目を作成した場合、そのプロジェクト項目にはイメージ (アイコンまたはビットマップ) を関連付けることができます。 ソリューション エクスプローラーには、このイメージがプロジェクト項目の横に表示されます。
次の手順では、プロジェクト項目のアイコンを実際に作成し、拡張機能のアセンブリに埋め込みます。 このアイコンは、先ほど作成した CustomActionProjectItemTypeProvider クラスの SharePointProjectItemIconAttribute から参照されます。
プロジェクト項目のカスタム アイコンを作成するには
ソリューション エクスプローラーで [ProjectItemDefinition] プロジェクトを右クリックします。
ショートカット メニューの [追加] をポイントし、[新しい項目] をクリックします。
プロジェクト項目の一覧で [アイコン ファイル] をクリックします。
注意
Visual Basic プロジェクトの場合、[アイコン ファイル] 項目を表示するには、[全般] ノードをクリックする必要があります。
新しいアイコン名に「CustomAction_SolutionExplorer.ico」と入力し、[追加] をクリックします。
イメージ エディターに新しいアイコンが表示されます。
認識しやすいデザインとなるよう 16x16 版のアイコン ファイルを編集し、アイコン ファイルを保存します。
ソリューション エクスプローラーで、[CustomAction_SolutionExplorer.ico] をクリックします。
[プロパティ] ウィンドウで、[ビルド アクション] の横のドロップダウンをクリックし、[埋め込まれたリソース] をクリックします。
チェックポイント
この段階で、プロジェクト項目に必要なすべてのコードがプロジェクトに揃ったことになります。 エラーが発生することなくプロジェクトをコンパイルできるかどうか、プロジェクトをビルドして確認してください。
プロジェクトをビルドするには
- [ビルド] メニューの [ソリューションのビルド] をクリックします。
Visual Studio 項目テンプレートの作成
自分が定義したプロジェクト項目を他の開発者が使用できるようにするには、プロジェクト テンプレートまたは項目テンプレートを作成します。 Visual Studio で新しいプロジェクトを作成する際または既存のプロジェクトに項目を追加する際、開発者は、そのテンプレートを使用して、プロジェクト項目のインスタンスを作成します。 このチュートリアルでは、ItemTemplate プロジェクトを使用してプロジェクト項目を構成します。
項目テンプレートを作成するには
Class1 コード ファイルを ItemTemplate プロジェクトから削除します。
ItemTemplate プロジェクトで、ItemTemplate.vstemplate ファイルを開きます。
ファイルの内容を次の XML に置き換え、ファイルを保存して閉じます。
注意
次の XML は、Visual C# の項目テンプレート用です。 Visual Basic の項目テンプレートを作成する場合は、ProjectType 要素の値を VisualBasic に置き換えてください。
<VSTemplate Version="2.0.0" xmlns="https://schemas.microsoft.com/developer/vstemplate/2005" Type="Item"> <TemplateData> <DefaultName>CustomAction</DefaultName> <Name>Custom Action</Name> <Description>SharePoint Custom Action by Contoso</Description> <ProjectType>CSharp</ProjectType> <SortOrder>1000</SortOrder> <Icon>ItemTemplate.ico</Icon> <ProvideDefaultName>true</ProvideDefaultName> </TemplateData> <TemplateContent> <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$\Elements.xml">Elements.xml</ProjectItem> <ProjectItem ReplaceParameters="true" TargetFileName="$fileinputname$\SharePointProjectItem.spdata">CustomAction.spdata</ProjectItem> </TemplateContent> </VSTemplate>
このファイルには、項目テンプレートの内容と動作が定義されています。 このファイルの内容の詳細については、「Visual Studio テンプレート スキーマ参照」を参照してください。
ソリューション エクスプローラーで、[ItemTemplate] プロジェクトを右クリックし、[追加] をクリックして、[新しい項目] をクリックします。
[新しい項目の追加] ダイアログ ボックスで、[テキスト ファイル] を選択し、[名前] フィールドに「CustomAction.spdata」と入力して [追加] をクリックします。
次の XML を CustomAction.spdata ファイルに追加し、ファイルを保存して閉じます。
<?xml version="1.0" encoding="utf-8"?> <ProjectItem Type="Contoso.CustomAction" DefaultFile="Elements.xml" xmlns="https://schemas.microsoft.com/VisualStudio/2010/SharePointTools/SharePointProjectItemModel"> <Files> <ProjectItemFile Source="Elements.xml" Target="$fileinputname$\" Type="ElementManifest" /> </Files> </ProjectItem>
このファイルには、プロジェクト項目に含まれている各ファイルに関する情報が格納されます。 ProjectItem 要素の Type 属性には、プロジェクト項目定義 (先ほど作成した CustomActionProjectItemTypeProvider クラス) の SharePointProjectItemTypeAttribute に渡した文字列を設定します。 .spdata ファイルの内容の詳細については、「SharePoint プロジェクト項目スキーマのリファレンス」を参照してください。
ソリューション エクスプローラーで、[ItemTemplate] プロジェクトを右クリックし、[追加] をクリックして、[新しい項目] をクリックします。
[新しい項目の追加] ダイアログ ボックスで、[XML ファイル] を選択し、[名前] フィールドに「Elements.xml」と入力して [追加] をクリックします。
Elements.xml ファイルの内容を次の XML に置き換え、ファイルを保存して閉じます。
<?xml version="1.0" encoding="utf-8" ?> <Elements Id="$guid8$" xmlns="https://schemas.microsoft.com/sharepoint/"> <CustomAction Id="Replace this with a GUID or some other unique string" GroupId="SiteActions" Location="Microsoft.SharePoint.StandardMenu" Sequence="1000" Title="Replace this with your title" Description="Replace this with your description" > <UrlAction Url="~site/Lists/Tasks/AllItems.aspx"/> </CustomAction> </Elements>
このファイルは、SharePoint サイトの [サイトの操作] メニューのメニュー項目を作成する既定のカスタム動作を定義します。 ユーザーがメニュー項目をクリックすると、UrlAction 要素に指定された URL が Web ブラウザーに表示されます。 カスタム動作の定義に使用できる XML 要素の詳細については、「Custom Action Definitions (カスタム動作の定義)」を参照してください。
必要に応じて、ItemTemplate.ico ファイルを開き、わかりやすいデザインに変更します。 [新しい項目の追加] ダイアログ ボックスで、対応するプロジェクト項目の横にこのアイコンが表示されます。
ソリューション エクスプローラーで、[ItemTemplate] プロジェクトを右クリックし、[プロジェクトのアンロード] をクリックします。
[ItemTemplate] プロジェクトを再び右クリックし、[ItemTemplate.csproj の編集] または [ItemTemplate.vbproj の編集] をクリックします。
プロジェクト ファイルで次の VSTemplate 要素を見つけます。
<VSTemplate Include="ItemTemplate.vstemplate">
この VSTemplate 要素を次の XML に置き換えます。
<VSTemplate Include="ItemTemplate.vstemplate"> <OutputSubPath>SharePoint\SharePoint14</OutputSubPath> </VSTemplate>
OutputSubPath 要素は、プロジェクトをビルドすると項目テンプレートが作成されるパス内の追加フォルダーを指定します。 ここで指定するフォルダーにより、項目テンプレートはユーザーが [新しい項目の追加] ダイアログ ボックスで [SharePoint] ノードの [2010] ノードをクリックしたときにのみ使用できるようになります。
ファイルを保存して閉じます。
ソリューション エクスプローラーで、[ItemTemplate] プロジェクトを右クリックし、[プロジェクトの再読み込み] をクリックします。
プロジェクト項目を配置するための VSIX パッケージの作成
拡張機能を配置するには、ソリューションで VSIX プロジェクトを使用して VSIX パッケージを作成します。 まず、VSIX プロジェクトに含まれている source.extension.vsixmanifest ファイルを変更して、VSIX パッケージを構成します。 次に、ソリューションをビルドして VSIX パッケージを作成します。
VSIX パッケージを構成および作成するには
ソリューション エクスプローラーで、CustomActionProjectItem プロジェクトの source.extension.vsixmanifest ファイルをダブルクリックします。
Visual Studio によってマニフェスト エディターでファイルが開きます。 source.extension.vsixmanifest ファイルが、すべての VSIX パッケージで必要とされる extension.vsixmanifest ファイルの基礎となります。 このファイルの詳細については、「VSIX Extension Schema Reference」を参照してください。
[プロジェクト名] ボックスに「Custom Action Project Item」と入力します。
[作成者] ボックスに「Contoso」と入力します。
[説明] ボックスに、「A SharePoint project item that represents a custom action」(カスタム動作を表す SharePoint プロジェクト項目) と入力します。
エディターの [コンテンツ] セクションで、[コンテンツの追加] をクリックします。
[コンテンツの追加] ダイアログ ボックスで、[コンテンツ タイプの選択] ボックスの一覧の [項目テンプレート] をクリックします。
注意
この値は、extension.vsixmanifest ファイル内の ItemTemplate 要素に対応します。 プロジェクト項目テンプレートが格納される VSIX パッケージ内のサブフォルダーは、この要素によって指定されます。 詳細については、「ItemTemplate Element (VSX Schema)」を参照してください。
[ソースの選択] の下にある [プロジェクト] をクリックし、その横のボックスの [ItemTemplate] を選択します。
[OK] をクリックします。
マニフェスト エディターの [コンテンツの追加] をもう一度クリックします。
[コンテンツの追加] ダイアログ ボックスで、[コンテンツ タイプの選択] ボックスの一覧の [MEF コンポーネント] をクリックします。
注意
この値は、extension.vsixmanifest ファイル内の MefComponent 要素に対応します。 この要素は、VSIX パッケージ内の拡張機能アセンブリの名前を指定します。 詳細については、「MEFComponent Element (VSX Schema)」を参照してください。
[ソースの選択] の下にある [プロジェクト] をクリックし、その横のボックスの [ProjectItemDefinition] を選択します。
[OK] をクリックします。
[ビルド] メニューの [ソリューションのビルド] をクリックします。 エラーが発生することなくプロジェクトがコンパイルされることを確認します。
CustomActionProjectItem プロジェクトのビルド出力フォルダーを開きます。 このフォルダーに CustomActionProjectItem.vsix ファイルが格納されていることを確認します。
既定では、 CustomActionProjectItem プロジェクトが格納されているフォルダーの下の ..\bin\Debug フォルダーがビルド出力フォルダーです。
プロジェクト項目のテスト
これで、プロジェクト項目をテストする準備ができました。 まず、Visual Studio の実験用インスタンスで CustomActionProjectItem ソリューションのデバッグを開始します。 次に、Visual Studio の実験用インスタンスで、SharePoint プロジェクトのカスタム動作プロジェクト項目をテストします。 最後に、SharePoint プロジェクトをビルドして実行し、カスタム動作が正常に機能することを確認します。
ソリューションのデバッグを開始するには
管理者特権で Visual Studio を再起動し、CustomActionProjectItem ソリューションを開きます。
CustomAction コード ファイルを開き、InitializeType メソッドのコードの先頭行にブレークポイントを追加します。
F5 キーを押してデバッグを開始します。
Visual Studio によって、拡張機能が %UserProfile%\AppData\Local\Microsoft\VisualStudio\10.0Exp\Extensions\Contoso\Custom Action Project Item\1.0 にインストールされ、Visual Studio の実験用インスタンスが開始されます。 このインスタンスの Visual Studio でプロジェクト項目をテストします。
Visual Studio でプロジェクト項目をテストするには
Visual Studio の実験用インスタンスで、[ファイル] メニューの [新規] をポイントし、[プロジェクト] をクリックします。
(項目テンプレートがサポートする言語に応じて) [Visual C#] または [Visual Basic] を展開し、[SharePoint] を展開して、[2010] をクリックします。
プロジェクト テンプレートの一覧で [空のプロジェクト] をクリックします。
[プロジェクト名] ボックスに「CustomActionTest」と入力します。
[OK] をクリックします。
SharePoint カスタマイズ ウィザードで、デバッグ用のサイトの URL を入力し、[完了] をクリックします。
ソリューション エクスプローラーで、プロジェクト ノードを右クリックし、[追加] をポイントして、[新しい項目] をクリックします。
[新しい項目の追加] ダイアログ ボックスで、[SharePoint] ノードの下の [2010] ノードをクリックします。
[カスタム動作] 項目がプロジェクト項目の一覧に表示されることを確認します。
[カスタム動作] をクリックして、[追加] をクリックします。
CustomAction1 という名前の新しい項目がプロジェクトに追加され、エディターに Elements.xml ファイルが表示されます。
Visual Studio のもう一方のインスタンスで、先ほど InitializeType メソッドに設定したブレークポイントで、コードが停止していることを確認します。 F5 キーを押して、プロジェクトのデバッグを続行します。
Visual Studio の実験用インスタンスで、ソリューション エクスプローラーを開き、[CustomAction1] ノードを右クリックし、[カスタム動作デザイナーの表示] をクリックします。 メッセージ ボックスが表示されることを確認して、[OK] をクリックします。
このショートカット メニューを使用して、追加のオプションやコマンド (カスタム動作のデザイナーを表示するなど) を開発者に提供することができます。
[表示] メニューの [出力] をクリックします。
[出力] ウィンドウが開きます。
ソリューション エクスプローラーで、CustomAction1 項目を右クリックし、その名前を「MyCustomAction」に変更します。
[出力] ウィンドウに確認メッセージが表示されます。このメッセージは、CustomActionProjectItemTypeProvider クラスで定義した ProjectItemNameChanged イベント ハンドラーによって出力されます。 このイベントを初めとする、プロジェクト項目の各種イベントを処理することにより、プロジェクト項目に対して開発者が変更を加えたときのカスタム動作を実装することができます。
SharePoint のカスタム動作をテストするには
Visual Studio の実験用インスタンスで、[MyCustomAction] プロジェクト項目の子である Elements.xml ファイルを開きます。
Elements.xml ファイルで、次の変更を加えます。
CustomAction 要素で、Id 属性を GUID または他の適当な一意の文字列に設定します。 次に例を示します。
Id="cd85f6a7-af2e-44ab-885a-0c795b52121a"
CustomAction 要素で、Title 属性を次のように設定します。
Title="SharePoint Developer Center"
CustomAction 要素で、Description 属性を次のように設定します。
Description="Opens the SharePoint Developer Center Web site."
UrlAction 要素で、Url 属性を次のように設定します。
Url="https://msdn.microsoft.com/sharepoint/default.aspx"
Elements.xml ファイルを保存します。
F5 キーを押します。 カスタム動作がパッケージ化され、プロジェクトの [サイト URL] プロパティで指定された SharePoint サイトに配置されます。 Web ブラウザーには、このサイトの既定のページが表示されます。
注意
[スクリプト デバッグが無効] ダイアログ ボックスが表示された場合は、[はい] をクリックしてプロジェクトをデバッグします。
[サイトの操作] メニューをクリックします。 このメニューの一番下に、"SharePoint Developer Center" という名前のカスタム動作が表示されることを確認します。
[SharePoint デベロッパー センター] メニュー項目をクリックします。 ブラウザーに https://msdn.microsoft.com/sharepoint/default.aspx の Web サイトが表示されることを確認します。
Web ブラウザーを閉じます。
開発コンピューターのクリーンアップ
プロジェクト項目のテストが終わったら、プロジェクト項目テンプレートを Visual Studio の実験用インスタンスから削除します。
開発コンピューターをクリーンアップするには
Visual Studio の実験用インスタンスの [ツール] メニューで、[拡張機能マネージャー] をクリックします。
[拡張機能マネージャー] ダイアログ ボックスが表示されます。
拡張機能の一覧で、[Custom Action Project Item] をクリックし、[アンインストール] をクリックします。
確認のダイアログ ボックスが表示されたら、[はい] をクリックして、拡張機能をアンインストールします。
[今すぐ再起動] をクリックするとアンインストールは完了です。
Visual Studio の両方のインスタンス (CustomActionProjectItem ソリューションを開いた Visual Studio の実験用インスタンスとインスタンス) を閉じます。
次の手順
このチュートリアルを完了すると、項目テンプレートにウィザードを追加できるようになります。 ユーザーがカスタム動作プロジェクト項目を SharePoint プロジェクトに追加するときに、このウィザードはカスタム動作についての情報 (クリックされたときに移動するための場所と URL など) を収集し、Elements.xml ファイルの新しいプロジェクト項目にこの情報を追加します。 詳細については、「チュートリアル: 項目テンプレートに基づくカスタム動作プロジェクト項目の作成 (パート 2)」を参照してください。
参照
処理手順
参照
その他の技術情報
チュートリアル: 項目テンプレートに基づくカスタム動作プロジェクト項目の作成 (パート 2)