Share via


フィーチャーを使用してサイト要素を展開する (SharePoint Foundation 2010)

 

適用先: SharePoint Foundation 2010

ここでは、フィーチャーを使用して開発サイト要素のカスタマイズを展開する方法について説明します。フィーチャーを使用すると、サイトのカスタマイズを有効および無効にできる範囲を制御でき、複数のサーバー ファームにカスタマイズを簡単に展開できます。

このセクションの内容

  • フィーチャーとは

  • フィーチャーを使用する状況

  • フィーチャーを作成する

  • Windows PowerShell を使用してフィーチャーをインストールおよびアクティブ化する

フィーチャーとは

"フィーチャー" とは、SharePoint Foundation 2010 用のさまざまな定義済み拡張機能のコンテナーであり、フロントエンド Web サーバーとアプリケーション サーバーに展開される一連の XML ファイルで構成されます。フィーチャーは、ソリューション パッケージの一部として展開でき、SharePoint Foundation サイトで個別にアクティブ化できます。

フィーチャーを使用すると、簡単なサイトのカスタマイズを行うときの複雑さが軽減されます。ちょっとした機能変更に大規模なコード群をコピーする必要がなくなるため、フロントエンド Web サーバー間で発生するバージョン管理や一貫性の問題が少なくなります。

フィーチャーを使用すると、展開した個々の機能の有効/無効を切り替えるのも容易で、管理者はユーザー インターフェイスで特定のフィーチャーをオン/オフすることにより、テンプレートやサイト定義を切り替えることができます。

要素はフィーチャー内の最小単位です。Feature 要素は、Feature.xml ファイル内で使用され、フィーチャーを定義する働きと、フィーチャーをサポートするアセンブリ、ファイル、依存関係、プロパティの場所を指定する働きがあります。フィーチャーには 1 つの Feature.xml ファイルと、個々の要素を記述した任意の数のファイルが含まれます。Onet.xml ファイルでは、サイト定義からサイトを作成するときにフィーチャーを有効化することを指定するために、異なるスキーマの別の Feature 要素が使用されます。

通常、Feature.xml ファイルは、フィーチャーの実行に必要な要素を定義する <Elements> タグを最上位に含む XML ファイルを 1 つ以上参照します。SharePoint Foundation 2010 の要素の多くは、Microsoft Office SharePoint Portal Server 2003 の Onet.xml ファイルや Schema.xml ファイルで独立したノードになっていたものに対応します。要素には、カスタム メニュー項目、イベント ハンドラーなど、いくつかの型があります。

フィーチャーを使用する状況

機能、カスタマイズ、または構成の変更をフロントエンド サーバーに展開するときは、フィーチャーを使用することをお勧めします。フィーチャーを使用すると、アクティブ化、アップグレード、そして最終的な非アクティブ化という機能のライフサイクルを柔軟に管理できます。

次のシナリオの 1 つ以上があてはまる場合、フィーチャーを使用して開発サイト要素を展開できます。

  • アクティブ化および非アクティブ化の必要性   フィーチャーにサイト要素のカスタマイズ内容を展開する場合、Windows PowerShell を使用するかオブジェクト モデルを使用して、フィーチャーのインストール、アクティブ化、および非アクティブ化を実行できます。また、サーバーの全体管理 Web サイトを使用して、フィーチャーをアクティブ化および非アクティブ化できます。

  • 範囲の柔軟性   ファーム、Web アプリケーション、サイト コレクション、Web サイトなど、1 つの範囲でフィーチャーをアクティブ化できます。

  • 分散した展開の複雑さの軽減   フィーチャーは、ソリューションの一部として複数のサーバー ファームに簡単に展開できます。

  • フィーチャーのオブジェクト モデルによる制御   フィーチャーのオブジェクト モデルにより、指定された範囲内にインストールされているフィーチャーのリストを指定したり、フィーチャーをファーム レベルおよびサイト レベルで有効にするかどうかを制御したりできます。

異なる環境に展開するためにフィーチャーをパッケージ化するには、ソリューション パッケージを使用します。たとえば、開発者のワークステーションと統合ファームの間や、統合ファームまたは作成クライアント ワークステーションとパイロット ファームまたは生産ファームの間についても、ソリューション パッケージを使用してカスタマイズを展開します。

フィーチャーを作成する

ブラウザーまたは SharePoint Designer を使用して SharePoint Foundation 2010 でカスタム Web ページを作成するとき、ASPX ページは SharePoint Foundation 2010 を実行しているサーバーのルート サイト コレクションにのみ属することができます。ファーム全体およびすべてのサイト コレクションで使用できるページをサイト コレクションに作成するには、ソリューションを使用して \14\Template\Layouts フォルダーにページを展開します (ソリューション マニフェスト ファイルで TemplateFiles 要素を使用します)。

ファームでのベスト プラクティスは、ソリューション パッケージを使用してフィーチャーを展開することです。サーバーを再ビルドする必要がある場合、または別のサーバーをファームに追加する場合、フィーチャーを各フロントエンド Web サーバーに手動で追加する必要はありません。ソリューション パッケージを使用することで、新しいフィーチャーやアップグレードしたフィーチャーをファーム全体に展開してフロントエンド Web サーバーを同期し、その状態とファーム内の他のサーバーの状態を整合させることができます。

サイト コレクションまたは Web サイトでのカスタム ページの可用性を制御するには、ソリューションの一部としてカスタム Web ページを SharePoint フィーチャーとして展開します。サイト コレクションおよび Web サイトのスコープを使用して Web ページを展開するには、Feature.xml ファイルのモジュール要素を使用します。モジュールは、サイトで Web パーツ ページを実装するためによく使用されます。

ソリューションの一部として展開されるフィーチャーは、自動的にインストールされます。フィーチャーを手動で展開する場合は、フィーチャーをインストールしてアクティブ化する必要があります。後の「Windows PowerShell を使用してフィーチャーをインストールおよびアクティブ化する」を参照してください。

カスタムフィーチャーを作成および展開するには

  1. Feature.xml ファイルを作成します。次に示すのは Feature.xml ファイルのサンプルです。このファイルは、フィーチャーに一意の ID を設定し、Module.xml ファイルを示すために必要です。

    <?xml version="1.0"?>
    <Feature Id="8C4DD0CB-5A94-44da-9B7F-E9ED49C2B2DC" Title=
    "Custom Web page"
    Description="This simple example feature adds an ASPX page 
    with a hosted XmlFormView control" 
    Version="1.0.0.0" Scope="Web"
    xmlns="https://schemas.microsoft.com/sharepoint/">
    <ElementManifests>
        <ElementManifest Location="Module.xml"/>
    </ElementManifests>
    </Feature>
    
  2. Module.xml ファイルを作成します。次に示すのは Module.xml ファイルのサンプルです。Module.xml ファイルには、ソリューションの一部であるページに関する情報が格納されています。

    <?xml version="1.0"?>
    <Elements xmlns="https://schemas.microsoft.com/sharepoint/">
        <module name="file" url="" path="">
            <file url="XmlFormViewPage.aspx" type="ghostable"> </file>
        </module>
    </Elements>
    
  3. ファイルの url の値を ASPX ページの名前に変更します。

  4. サーバー コンピューター上の Features セットアップ ディレクトリに、フィーチャー定義用のサブフォルダーを作成します。Features ディレクトリは、通常、%COMMONPROGRAMFILES%\Microsoft shared\Web server extensions\14\TEMPLATE\FEATURES にあります。

    重要

    ベスト プラクティスは、フィーチャー定義用に作成するサブフォルダーに詳細な修飾名を使用することです。これにより、同じ名前の複数のフィーチャーを追加して別のフィーチャーの Feature.xml ファイルを上書きしてしまう可能性が最小限になります。たとえば、Contract ではなく HR_ContractFinance_Contract を使用します。

  5. カスタム .aspx ページをフィーチャー定義用のこのサブフォルダーに追加します。

  6. Feature.xml ファイルと Module.xml ファイルを同じ場所に追加します。

  7. フィーチャーをソリューション パッケージに追加します。

    Visual Studio 2010 を使用してフィーチャーをソリューションに追加することも、ソリューションの Manifest.xml ファイルに FeatureManifests 要素を手動で追加することもできます。

  8. ソリューション パッケージを作成します。

    Visual Studio 2010 を使用して、ソリューション パッケージを構築できます。Makecab.exe ツールを使用してソリューション パッケージを作成することもできます。

  9. ソリューション パッケージをインポートして展開します。

    Windows PowerShell の Add-SPSolution コマンドレットを使用してソリューションをソリューション ストアに追加してから、サーバーの全体管理 Web サイトまたは Windows PowerShell を使用してソリューション ストアからソリューションを展開します。

Visual Studio 2010 の使用によるソリューション パッケージへのフィーチャーの追加の詳細については、「SharePoint ソリューション パッケージの作成」(https://go.microsoft.com/fwlink/?linkid=187035&clcid=0x411) (英語) を参照してください。手動でのソリューション パッケージの作成、または Makecab.exe ツールによるパッケージの作成の詳細については、「ソリューションを作成する」(https://go.microsoft.com/fwlink/?linkid=187036&clcid=0x411) (英語) を参照してください。ソリューションの展開の詳細については、「ソリューション パッケージを展開する (SharePoint Foundation 2010)」を参照してください。

Windows PowerShell を使用してフィーチャーをインストールおよびアクティブ化する

Windows PowerShell またはオブジェクト モデルを使用して、フィーチャーのインストールとアクティブ化を行うことができます。フィーチャーは、[Web アプリケーション機能の管理] ページや、フィーチャーをアクティブ化するサイト コレクションまたはサイトの [機能] ページでもアクティブ化できます。フィーチャーをインストールすると、その定義や要素をサーバー ファーム全体に知らせることができ、フィーチャーをアクティブ化することによって、フィーチャーを特定の範囲で使用できるようになります。

注意

ソリューション パッケージの一部として展開されるフィーチャーは展開によってインストールされ、手動でインストールする必要はありません。

フィーチャーは、14\Template\Features フォルダーの下にある各フィーチャー専用のサブフォルダーにインストールします。このフォルダーのルートでは、Feature.xml ファイルで機能の内容を定義します。フィーチャーを使用するには、事前に個別のフィーチャーをインストールする必要があります。また、フィーチャーの範囲がファームでない場合は、インストールした後でフィーチャーをアクティブ化する必要があります。フィーチャーの範囲がファームまたは Web アプリケーションの場合は、自動的にアクティブ化されます。

サーバー ファームで定義を使用できないようにフィーチャーをアンインストールするには、フィーチャーの範囲が Web アプリケーションまたはファームでない場合は、最初に Windows PowerShell の Disable-SPFeature コマンドレットを使用してフィーチャーを非アクティブ化する必要があります。フィーチャーを非アクティブ化した後は、Uninstall-SPFeature コマンドレットを使用してアンインストールできます。詳細については、「Uninstall-SPFeature」を参照してください。フィーチャーをアンインストールした後は、インターネット インフォメーション サービス (IIS) をリセットして、変更を有効にしてください。

フィーチャーをアンインストールせずにもともと割り当てられていた対象範囲で非アクティブにするには、Disable-SPFeature コマンドレットを使用します。詳細については、「Disable-SPFeature」を参照してください。

フィーチャーをインストールしてアクティブ化するには、次の手順を実行します。

Windows PowerShell を使用してフィーチャーをインストールするには

  1. 次の最小要件を満たしていることを確認します。Add-SPShellAdmin を参照してください。

  2. [スタート] メニューの [すべてのプログラム] をクリックします。

  3. [Microsoft SharePoint 2010 製品] をクリックします。

  4. [SharePoint 2010 管理シェル] をクリックします。

  5. Windows PowerShell コマンド プロンプトで、次のコマンドを入力します。

    Install-SPFeature -path <Path> [-force]
    

    ここで、

    • <Path> は、有効なファイル パス (MyFeature など) です。フィーチャーへのパスは、14\Template\Features フォルダー名へのリテラル パスでなければなりません。Feature.xml ファイル名は暗黙であり、指定する必要はありません。

詳細については、「Install-SPFeature」を参照してください。

注意

コマンドライン管理タスクを実行するときには Windows PowerShell を使用することが推奨されています。Stsadm コマンドライン ツールは推奨されていませんが、製品の以前のバージョンとの互換性をサポートするために含まれています。

Windows PowerShell を使用してフィーチャーをアクティブ化するには

  1. 次の最小要件を満たしていることを確認します。Add-SPShellAdmin を参照してください。

  2. [スタート] メニューの [すべてのプログラム] をクリックします。

  3. [Microsoft SharePoint 2010 製品] をクリックします。

  4. [SharePoint 2010 管理シェル] をクリックします。

  5. Windows PowerShell コマンド プロンプトで、次のコマンドを入力します。

    Enable-SPFeature -Identity <FeatureID> [-url] <URLname> [-force]
    

    ここで、

    • <FeatureID> は、14\Template\Features フォルダーにあるフィーチャー フォルダーの名前です。有効なファイル パス (MyFeature など) を指定する必要があります。

    • <URLname> は、フィーチャーがアクティブ化されている Web アプリケーション、サイト コレクション、または Web サイトのフィーチャーの親 URL です (http://somesite など)。

詳細については、「Enable-SPFeature」を参照してください。

注意

コマンドライン管理タスクを実行するときには Windows PowerShell を使用することが推奨されています。Stsadm コマンドライン ツールは推奨されていませんが、製品の以前のバージョンとの互換性をサポートするために含まれています。