次の方法で共有


チュートリアル: 項目テンプレートに基づくカスタム動作プロジェクト項目の作成 (パート 1)

Visual Studio の 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 SDK。このチュートリアルでは、SDK の VSIX プロジェクト テンプレートを使用して、プロジェクト項目を配置するための VSIX パッケージを作成します。詳細については、「Visual Studio の SharePoint ツールの拡張」を参照してください。

次の概念に関する知識があると役に立ちますが、チュートリアルを実行するうえで必須というわけではありません。

プロジェクトの作成

このチュートリアルを実行するには、3 つのプロジェクトを作成する必要があります。

  • VSIX プロジェクト。このプロジェクトは、SharePoint プロジェクト項目を配置するための VSIX パッケージを作成します。

  • 項目テンプレート プロジェクト。このプロジェクトは、SharePoint プロジェクト項目を SharePoint プロジェクトに追加するために使用できる項目テンプレートを作成します。

  • クラス ライブラリ プロジェクト。このプロジェクトは、SharePoint プロジェクト項目の動作を定義する Visual Studio 拡張機能を実装します。

この 2 つのプロジェクトを作成することから始めます。

VSIX プロジェクトを作成するには

  1. Visual Studio を起動します。

  2. メニュー バーで [ファイル][新規][プロジェクト] の順にクリックします。

  3. [新しいプロジェクト] のダイアログ ボックスの上部にある一覧で、[.NET Framework 4.5] が選択されていることを確認します。

  4. [新しいプロジェクト] のダイアログ ボックスで、[Visual C#] または [Visual Basic] のノードを展開し、[機能拡張] のノードを選択します。

    [!メモ]

    [機能拡張] のノードは、Visual Studio SDKをインストールするときだけです。詳細については、このトピックで前に説明した「前提条件」を参照してください。

  5. [VSIX プロジェクト] テンプレートを選択します。

  6. [名前] ボックスに、CustomActionProjectItemを入力し、を [OK] のボタンをクリックします。

    Visual Studio のソリューション エクスプローラーCustomActionProjectItem プロジェクトが追加されます。

項目テンプレート プロジェクトを作成するには

  1. **[ソリューション エクスプローラー]で、ソリューション ノードのショートカット メニューを開き、[追加]**を選択し、を **[新しいプロジェクト]**を選択します。

    [!メモ]

    Visual Basic プロジェクトでソリューション エクスプローラーにソリューション ノードが表示されるのは、General, Projects and Solutions, Options Dialog Box[常にソリューションを表示] チェック ボックスがオンになっている場合だけです。

  2. [新しいプロジェクト] のダイアログ ボックスの上部にある一覧で、[.NET Framework 4.5] が選択されていることを確認します。

  3. [新しいプロジェクト] のダイアログ ボックスで、[Visual C#] または [Visual Basic] のノードを展開し、[機能拡張] のノードを選択します。

  4. プロジェクト テンプレートの一覧で、[C# 項目テンプレート] または [Visual Basic 項目テンプレート] テンプレートを選択します。

  5. [名前] ボックスに、[ItemTemplate]を入力し、を [OK] のボタンをクリックします。

    Visual Studio のソリューションに ItemTemplate プロジェクトが追加されます。

拡張機能プロジェクトを作成するには

  1. **[ソリューション エクスプローラー]で、ソリューション ノードのショートカット メニューを開き、[追加]**を選択し、を **[新しいプロジェクト]**を選択します。

  2. [新しいプロジェクト] のダイアログ ボックスの上部にある一覧で、[.NET Framework 4.5] が選択されていることを確認します。

  3. [新しいプロジェクト] のダイアログ ボックスで、[Visual C#] または [Visual Basic] のノードを展開し、[ウィンドウ] のノードを選択し、を [クラス ライブラリ] のプロジェクト テンプレートを選択します。

  4. [名前] ボックスに、[ProjectItemDefinition]を入力し、を [OK] のボタンをクリックします。

    Visual Studio によって、ProjectItemDefinition プロジェクトがソリューションに追加され、既定の Class1 コード ファイルが開きます。

  5. Class1 コード ファイルをプロジェクトから削除します。

拡張機能プロジェクトの構成

SharePoint プロジェクト項目の種類を定義するためのコードを記述する前に、コード ファイルおよびアセンブリ参照を拡張機能プロジェクトに追加しておく必要があります。

プロジェクトを構成するには

  1. [ソリューション エクスプローラー]では、[ProjectItemDefinition] のプロジェクトのショートカット メニューを開き、**[追加]**を選択し、を **[新しい項目]**を選択します。

  2. プロジェクト項目の一覧で、**[コード ファイル]**を選択します。

  3. [名前] ボックスに適切なファイル名拡張子に CustomAction の名前を入力し、を [追加] のボタンをクリックします。

  4. [ソリューション エクスプローラー]では、[ProjectItemDefinition] のプロジェクトのショートカット メニューを開き、**[参照の追加]**を選択します。

  5. [ProjectItemDefinitionマネージャー–を参照してください。] のダイアログ ボックスで、[アセンブリ] のノードを選択し、[Framework] のノードを選択します。

  6. 次のアセンブリの横にあるチェック ボックスをオンにします:

    • System.ComponentModel.Composition

    • System.Windows.Forms

  7. [拡張機能] のノードを選択し、Microsoft.VisualStudio.Sharepointのアセンブリの横にあるチェック ボックスをオンに [OK] のボタンをクリックします。

新しい SharePoint プロジェクト項目の種類の定義

ISharePointProjectItemTypeProvider インターフェイスを実装するクラスを作成して、新しいプロジェクト項目の種類の動作を定義します。このインターフェイスは、新しい種類のプロジェクト項目を定義するたびに必ず実装します。

新しい SharePoint プロジェクト項目の種類を定義するには

  1. ProjectItemDefinition プロジェクトで、CustomAction コード ファイルを開きます。

  2. このファイル内のコードを次のコードに置き換えます。

    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 から参照されます。

プロジェクト項目のカスタム アイコンを作成するには

  1. [ソリューション エクスプローラー]では、[ProjectItemDefinition] のプロジェクトのショートカット メニューを開き、**[追加]**を選択し、を **[New Item…]**を選択します。

  2. プロジェクト項目の一覧で、[アイコン ファイル] の項目を選択します。

    [!メモ]

    Visual Basicプロジェクトでは、[アイコン ファイル] の項目を表示するに [全般] のノードを選択する必要があります。

  3. [名前] ボックスに、CustomAction_SolutionExplorer.icoを入力し、を [追加] のボタンをクリックします。

    イメージ エディターに新しいアイコンが表示されます。

  4. 認識しやすいデザインとなるよう 16x16 版のアイコン ファイルを編集し、アイコン ファイルを保存します。

  5. **[ソリューション エクスプローラー]では、[CustomAction_SolutionExplorer.ico]**を選択します。

  6. [プロパティ] のペインで、[ビルド アクション] のプロパティの横にある矢印をクリックします。

  7. 表示されたリストで、**[埋め込みリソース]**を選択します。

チェックポイント

この段階で、プロジェクト項目に必要なすべてのコードがプロジェクトに揃ったことになります。コンパイル エラーが発生しないことを確認するプロジェクトをビルドします。

プロジェクトをビルドするには

  • [ProjectItemDefinition] のプロジェクトのショートカット メニューを開き、**[ビルド]**を選択します。

Visual Studio 項目テンプレートの作成

自分が定義したプロジェクト項目を他の開発者が使用できるようにするには、プロジェクト テンプレートまたは項目テンプレートを作成します。Visual Studio で新しいプロジェクトを作成する際または既存のプロジェクトに項目を追加する際、開発者は、そのテンプレートを使用して、プロジェクト項目のインスタンスを作成します。このチュートリアルでは、ItemTemplate プロジェクトを使用してプロジェクト項目を構成します。

項目テンプレートを作成するには

  1. Class1 コード ファイルを ItemTemplate プロジェクトから削除します。

  2. ItemTemplate プロジェクトで、ItemTemplate.vstemplate ファイルを開きます。

  3. ファイルの内容を次の XML に置き換え、ファイルを保存して閉じます。

    [!メモ]

    次の XML は、Visual C# の項目テンプレート用です。Visual Basic の項目テンプレートを作成する場合は、ProjectType 要素の値を VisualBasic に置き換えてください。

    <?xml version="1.0" encoding="utf-8"?>
    <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 テンプレート スキーマ参照」を参照してください。

  4. [ソリューション エクスプローラー]では、[ItemTemplate] のプロジェクトのショートカット メニューを開き、**[追加]**を選択し、を **[新しい項目]**を選択します。

  5. [新しい項目の追加] のダイアログ ボックスで、[テキスト ファイル] テンプレートを選択します。

  6. [名前] ボックスに、CustomAction.spdataを入力し、を [追加] のボタンをクリックします。

  7. 次の 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 プロジェクト項目スキーマのリファレンス」を参照してください。

  8. [ソリューション エクスプローラー]では、[ItemTemplate] のプロジェクトのショートカット メニューを開き、**[追加]**を選択し、を **[新しい項目]**を選択します。

  9. [新しい項目の追加] のダイアログ ボックスで、[XML ファイル] テンプレートを選択します。

  10. [名前] ボックスに、Elements.xmlを入力し、を [追加] のボタンをクリックします。

  11. 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 サイトの [サイトの操作] メニューのメニュー項目を作成する既定のカスタム動作を定義します。userがメニュー項目を選択すると、URLがWebブラウザーの UrlAction の要素の更新が指定されています。カスタム動作の定義に使用できる XML 要素の詳細については、「Custom Action Definitions (カスタム動作の定義)」を参照してください。

  12. 必要に応じて、ItemTemplate.ico ファイルを開き、わかりやすいデザインに変更します。[新しい項目の追加] ダイアログ ボックスで、対応するプロジェクト項目の横にこのアイコンが表示されます。

  13. [ソリューション エクスプローラー]では、[ItemTemplate] のプロジェクトのショートカット メニューを開き、**[プロジェクトのアンロード]**を選択します。

  14. [ItemTemplate] のプロジェクトのショートカット メニューを再度開き、[Edit ItemTemplate.csproj] か **[Edit ItemTemplate.vbproj]**を選択します。

  15. プロジェクト ファイルで次の VSTemplate 要素を見つけます。

    <VSTemplate Include="ItemTemplate.vstemplate">
    
  16. 次に VSTemplate のこの要素を次のXMLに置き換え、ファイルを保存して閉じます。

    <VSTemplate Include="ItemTemplate.vstemplate">
      <OutputSubPath>SharePoint\SharePoint14</OutputSubPath>
    </VSTemplate>
    

    OutputSubPath 要素は、プロジェクトをビルドすると項目テンプレートが作成されるパス内の追加フォルダーを指定します。ここで指定するフォルダーは、顧客が [新しい項目の追加] のダイアログ ボックスを開いたときにだけ項目テンプレートが使用可能な場合は、[SharePoint] のノードを展開し、をクリックします [2010] のノードをであることを確認します。

  17. [ソリューション エクスプローラー]では、[ItemTemplate] のプロジェクトのショートカット メニューを開き、**[プロジェクトの再読み込み]**を選択します。

プロジェクト項目を配置するための VSIX パッケージの作成

拡張機能を配置するには、ソリューションで VSIX プロジェクトを使用して VSIX パッケージを作成します。まず、VSIX プロジェクトに含まれている source.extension.vsixmanifest ファイルを変更して、VSIX パッケージを構成します。次に、ソリューションをビルドして VSIX パッケージを作成します。

VSIX パッケージを構成および作成するには

  1. **[ソリューション エクスプローラー]では、CustomActionProjectItemプロジェクトの [source.extension.vsixmanifest] ファイルのショートカット メニューを開き、[開く]**を選択します。

    Visual Studio によってマニフェスト エディターでファイルが開きます。source.extension.vsixmanifestファイルは、すべてのVSIXパッケージが必要とするextension.vsixmanifestファイルの基礎です。このファイルの詳細については、「VSIX 拡張機能のスキーマに関するリファレンス」を参照してください。

  2. [製品名] ボックスに、[Custom Action Project Item]を入力します。

  3. [作成者] ボックスに、[Contoso]を入力します。

  4. [説明] ボックスに、カスタム動作を表すSharePointプロジェクト項目を入力します。

  5. [資産] のタブで、[新規作成] のボタンをクリックします。

    [新しい資産の追加] のダイアログ ボックスが表示されます。

  6. [種類] の一覧で、**[Microsoft.VisualStudio.ItemTemplate]**を選択します。

    [!メモ]

    この値は、extension.vsixmanifest ファイル内の ItemTemplate 要素に対応します。プロジェクト項目テンプレートが格納される VSIX パッケージ内のサブフォルダーは、この要素によって指定されます。詳細については、「ItemTemplate Element」を参照してください。

  7. [ソース] の一覧で、**[現在のソリューション内のプロジェクト]**を選択します。

  8. [プロジェクト] の一覧で、[ItemTemplate]を選択し、[OK] のボタンをクリックします。

  9. [資産] のタブで、[新規作成] のボタンをもう一度クリックします。

    [新しい資産の追加] のダイアログ ボックスが表示されます。

  10. [種類] の一覧で、**[Microsoft.VisualStudio.MefComponent]**を選択します。

    [!メモ]

    この値は、extension.vsixmanifest ファイル内の MefComponent 要素に対応します。この要素は、VSIX パッケージ内の拡張機能アセンブリの名前を指定します。詳細については、「MEFComponent Element」を参照してください。

  11. [ソース] の一覧で、**[現在のソリューション内のプロジェクト]**を選択します。

  12. [プロジェクト] の一覧で、**[ProjectItemDefinition]**を選択します。

  13. [OK] を選択します。

  14. メニュー バーで、[ビルド]、**[ソリューションのビルド]**を選択し、次に、プロジェクトがエラーなしでコンパイルしてください。

  15. CustomActionProjectItemプロジェクトのビルド出力フォルダーにCustomActionProjectItem.vsixファイルが格納されていることを確認します。

    既定では、プロジェクト ファイルに格納されているフォルダーCustomActionProjectItem プロジェクトが格納されているフォルダーの下の ..\bin\Debug フォルダーがビルド出力フォルダーです。

プロジェクト項目のテスト

これで、プロジェクト項目をテストする準備ができました。まず、Visual Studio の実験用インスタンスで CustomActionProjectItem ソリューションのデバッグを開始します。次に、Visual Studio の実験用インスタンスで、SharePoint プロジェクトのカスタム動作プロジェクト項目をテストします。最後に、SharePoint プロジェクトをビルドして実行し、カスタム動作が正常に機能することを確認します。

ソリューションのデバッグを開始するには

  1. 管理資格情報を使用してVisual Studioを再起動し、CustomActionProjectItemソリューションを開きます。

  2. CustomActionコード ファイルを開き、InitializeType のメソッドのコードの先頭行にブレークポイントを追加します。

  3. デバッグを開始するに [F5] のキーを選択します。

    Visual Studio によって、拡張機能が %UserProfile%\AppData\Local\Microsoft\VisualStudio\10.0Exp\Extensions\Contoso\Custom Action Project Item\1.0 にインストールされ、Visual Studio の実験用インスタンスが開始されます。Visual Studioでプロジェクト項目をテストします。この場合

Visual Studio でプロジェクト項目をテストするには

  1. Visual Studioの実験用インスタンスで、メニュー バーで、[ファイル][新規作成]、**[プロジェクト]**を選択します。

  2. [Visual C#][Visual Basic] を次の項目テンプレートがサポートする言語に応じて) **[SharePoint]**展開し、を展開し、を [2010] のノードを選択します。

  3. プロジェクト テンプレートの一覧で、**[SharePoint 2010 プロジェクト]**を選択します。

  4. [名前] ボックスに、CustomActionTestを入力し、を [OK] のボタンをクリックします。

  5. **[SharePoint カスタマイズ ウィザード]**では、デバッグ用に使用する入力し、次に [完了] のボタンを選択します。サイトのURL。

  6. **[ソリューション エクスプローラー]で、プロジェクトのノードのショートカット メニューを開き、[追加]**を選択し、を **[新しい項目]**を選択します。

  7. [新しい項目の追加] のダイアログ ボックスで、[SharePoint] のノードの下に [2010] のノードを選択します。

    [カスタム動作] 項目がプロジェクト項目の一覧に表示されることを確認します。

  8. [ユーザー設定のアクション] の項目を選択し、[追加] のボタンをクリックします。

    Visual Studioは、プロジェクトにという名前の [CustomAction1] 追加され、エディターのElements.xmlファイルを項目を開きます。

  9. Visual Studio のもう一方のインスタンスで、先ほど InitializeType メソッドに設定したブレークポイントで、コードが停止していることを確認します。

  10. プロジェクトのデバッグを続行に [F5] のキーを選択します。

  11. Visual Studioの実験用インスタンスで、[ソリューション エクスプローラー]で、を開き、[CustomAction1] のノードのショートカット メニュー、を **[View Custom Action Designer]**を選択します。

  12. メッセージ ボックスが表示されていることを確認し、次に [OK] のボタンを選択します。

    このショートカット メニューを使用して、追加のオプションやコマンド (カスタム動作のデザイナーを表示するなど) を開発者に提供することができます。

  13. メニュー バーで、[表示]、**[出力]**を選択します。

    [出力] ウィンドウが開きます。

  14. [ソリューション エクスプローラー]では、[CustomAction1] の項目のショートカット メニューを開き、[MyCustomAction]名前をに変更します。

    [出力] のペインで、確認メッセージが表示されます。このメッセージは、CustomActionProjectItemTypeProvider のクラスで定義した ProjectItemNameChanged のイベント ハンドラーによって記述されます。このイベントを初めとする、プロジェクト項目の各種イベントを処理することにより、プロジェクト項目に対して開発者が変更を加えたときのカスタム動作を実装することができます。

SharePoint のカスタム動作をテストするには

  1. Visual Studioの実験用インスタンスで、[MyCustomAction] プロジェクト項目の子であるElements.xmlファイルを開きます。

  2. Elements.xmlファイルで、次の変更を加え、ファイルを保存します:

    • CustomAction の要素で、次の例に示すように、GUIDまたは他の一意の文字列に Id の属性を設定します:

      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"
      
  3. F5キーを選択します。

    カスタム動作は、プロジェクトの [サイト URL] のプロパティで指定されたSharePointサイトにパッケージ化および配置されます。Webブラウザーには、このサイトの既定のページが表示されます。

    [!メモ]

    [スクリプト デバッグが無効] ダイアログ ボックスで、プロジェクトのデバッグを続行に [○] のボタンをクリックします。

  4. [サイト アクション] のメニューで、Webブラウザーでhttps://msdn.microsoft.com/sharepoint/default.aspxを開きます、次に閉じられるWebブラウザーを選択することを **[SharePoint Developer Center]**を確認します。

開発コンピューターのクリーンアップ

プロジェクト項目のテストが終わったら、プロジェクト項目テンプレートを Visual Studio の実験用インスタンスから削除します。

開発コンピューターをクリーンアップするには

  1. Visual Studioの実験用インスタンスで、メニュー バーで、[ツール]、**[拡張機能と更新プログラム]**を選択します。

    [拡張機能と更新プログラム] のダイアログ ボックスが表示されます。

  2. 拡張機能の一覧で、[Custom Action Project Item]を選択し、[アンインストール] のボタンをクリックします。

  3. 表示されたダイアログ ボックスで、拡張機能をアンインストールすることを確認するに [○] のボタンをクリックします。

  4. アンインストールを実行するに [今すぐ再起動] のボタンをクリックします。

  5. CustomActionProjectItemソリューションを開いたVisual Studioの実験用インスタンスとインスタンスの両方を閉じます。

次の手順

このチュートリアルを完了すると、項目テンプレートにウィザードを追加できるようになります。userがSharePointプロジェクトにカスタム動作プロジェクト項目を追加すると、ウィザードは、アクションを選択すると動作についての情報 (移動するための場所とURLなど) に収集し、新しいプロジェクト項目のElements.xmlファイルにこの情報を追加します。詳細については、「チュートリアル: 項目テンプレートに基づくカスタム動作プロジェクト項目の作成 (パート 2)」を参照してください。

参照

処理手順

チュートリアル: 項目テンプレートに基づくカスタム動作プロジェクト項目の作成 (パート 2)

アイコンまたはその他のイメージの作成 (アイコン用イメージ エディター)

関連項目

Visual Studio テンプレート スキーマ参照

アイコン用イメージ エディター

概念

SharePoint プロジェクト項目の種類の定義

SharePoint プロジェクト項目の項目テンプレートとプロジェクト テンプレートの作成

SharePoint プロジェクト サービスの使用