ソリューションを手動で作成する

最終更新日: 2011年4月13日

適用対象: SharePoint Foundation 2010

このトピックではソリューション パッケージに関する基礎的な情報を提供し、そのパッケージを手動で作成する方法について説明します。

重要重要

Visual Studio には、ソリューション パッケージの作成および構成を簡素化 (および大部分を自動化) するツールが用意されています。通常は、これらのツールを使用することをお勧めします。このトピックでは、Visual Studio ツール以外でファイルの 1 つを編集する必要があり、さらに開発者が Visual Studio を持っていないというまれな状況に対応するのに必要な基礎的な情報を紹介します。

ソリューション パッケージ

ソリューション パッケージは、ファイル名拡張子が .wsp のキャビネット ファイルです。このパッケージには必ずマニフェスト ファイルが含まれています。また、以下のコンポーネントのいくつか、またはすべてを含めることもできます。

  • サイト定義 (onet.xml および webtemp*.xml。default.aspx の場合もあります)

  • コード アクセス セキュリティ ポリシー

  • web.config に対する変更

  • テンプレート ファイルとルート ファイル。これには、以下のファイルが含まれます。

    • アプリケーション ページ (*.aspx)

    • リソース (*.resx)

    • リソース ファイル (*.doc、*.xls など)

    • ユーザー コントロール (*.ascx)

  • SharePoint 以外のアセンブリ (カスタム マネージ クラス ライブラリなど)。次のアイテムと共に展開できます。

    • 安全なコントロールのエントリ

    • リソース

  • フィーチャーの定義と、それに対応する要素定義およびファイル。フィーチャーに存在できるアイテムをいくつか次に示します。

    • Web パーツ ファイル (*.webpart、*.dwp)

    • リスト インスタンスおよびリスト テンプレート

    • コンテンツ タイプおよびユーザー設定フィールドの型

    • BCS/BDC モデル

    • イベント レシーバー

    • サイト ページ (*.aspx)

    • Web パーツまたは他のカスタム SharePoint Foundation クラスのアセンブリ。次のアイテムと共に展開できます。

      • 安全なコントロールのエントリ

      • リソース

ソリューション ファイルは階層構造を持ち、マニフェスト ファイルがルートに置かれて、フィーチャー、リソース、およびサイト定義ディレクトリはサブディレクトリ内に置かれます。

特定のフィーチャーのファイルはそのフィーチャーのサブディレクトリ内に置き、特定のサイト定義のファイルはそのサイト定義のサブディレクトリ内に置きます。

注意

.wsp ファイル内のディレクトリ構造が、フロントエンド Web サーバーのファイル システムでの最終的なディレクトリ構造を決定します。ただし、Visual Studio のツールで作成されたソリューション エクスプローラー内のディレクトリ構造は、通常、フロントエンド Web サーバーのディレクトリ構造と正確には一致しません。

ソリューション パッケージを手動で作成するには、以下の手順を実行します。

  1. ソリューションの manifest.xml ファイルを作成します。

    ソリューション マニフェスト (常に manifest.xml という名前になります) は、ソリューション ファイルのルートに格納します。このファイルで、処理するフィーチャー、サイト定義、リソース ファイル、Web パーツ ファイル、およびアセンブリのリストを定義します。このファイルは、ファイル構造を定義するわけではありません。ソリューションに含まれているのにマニフェスト XML ファイルのリストに入っていないファイルがあった場合、それらのファイルはどのような方法でも処理されません。

    以下に、manifest.xml ファイルの構造を示します。

    <Solution SolutionId="4AFC1350-F354-4439-B941-51377E845F2B" xmlns="http://schemas.microsoft.com/sharepoint/">
      <FeatureManifests>
        <FeatureManifest Location="FeatureLibrary\feature.xml"/>
      </FeatureManifests>
      <TemplateFiles>
        <TemplateFile Location="ControlTemplates\Featurelibraryform.ascx"/>
      </TemplateFiles>
      <RootFiles> 
      <!-- These files go into the 12\ directory and can be used for Web services and global resources -->
        <RootFile Location="ISAPI\MyWebService.asmx">
      </RootFiles>
      <Assemblies>
        <Assembly  DeploymentTarget="GlobalAssemblyCache" 
    Location="ms.samples.sharepoint.myFeature.dll"/>
      </Assemblies>
    </Solution>
    

    さらに、DwpFiles 要素を追加して .webpart ファイルまたは .dwp ファイルを指定したり、ResourceFiles 要素を追加してリソース ファイル、サイト定義、アプリケーション リソース、およびコード アクセス セキュリティ ポリシーを指定したりすることもできます。

  2. パッケージ内にフィーチャーがある場合は、各フィーチャーに feature.xml ファイルがあります。フィーチャーの各フィーチャー要素マニフェスト ファイル (elements.xml) ごとに、フィーチャー要素マニフェストを参照する ElementFile タグを追加します。

  3. ソリューション パッケージ (.wsp ファイル) を作成します。

    ソリューション ファイルは本質的には .cab ファイルなので、ソリューション パッケージの作成には makecab.exe ツールを使用します。makecab.exe ツールは, .cab ファイルの構造が記述された .ddf ファイル (Diamond Directive ファイル) へのポインターを受け取ります。.ddf ファイルの形式は、基本的には .inf ファイルと同じスタイルです。標準ヘッダーを宣言してから、一連のファイルを 1 行に 1 ファイルずつ列挙して、そのディスク上の場所と、それを .cab ファイル内のどこに置くかを指定します。

    ;
    .OPTION EXPLICIT     ; Generate errors 
    .Set CabinetNameTemplate=MySolutionFile.wsp     
    .set DiskDirectoryTemplate=CDROM ; All cabinets go in a single directory
    .Set CompressionType=MSZIP;** All files are compressed in cabinet files
    .Set UniqueFiles="ON"
    .Set Cabinet=on
    .Set DiskDirectory1=Package
    build\manifest.xml manifest.xml
    build\ MySolutionFile \feature.xml MySolutionFile \feature.xml
    ...
    

関連項目

概念

ソリューション スキーマ

ソリューションの概要