ソリューション パッケージのコンポーネント
この記事の内容 :
Solution 要素
FeatureManifest 要素
Assembly 要素
ApplicationResourceFile 要素
CodeAccessSecurity 要素
DwpFile 要素
Resource 要素
SiteDefinitionManifest 要素
RootFile 要素
TemplateFile 要素
この記事では、ソリューション パッケージの構造と、ソリューション パッケージで使用されるソリューション スキーマと要素について説明します。
ソリューション パッケージは、Office SharePoint Server 2007 と Windows SharePoint Services 3.0 のカスタム開発作業を、サーバー ファーム内の Web サーバーに (場合によってはアプリケーション サーバーにも) 配布する配布パッケージです。ソリューション パッケージで配布できるコンポーネントを以下に示します。
ソリューションを駆動するコードをラップする .NET Framework アセンブリ。
展開ファイル (リソース ファイル、画像、その他のヘルパー ファイルなど)。
多くのソリューションには、サイト、リスト、ライブラリ、フィールド、コンテンツ タイプなど、新しいテンプレートと定義の配信が伴います。これらの定義ファイルは、CAML ベースの XML ファイル形式です。
Web サーバー レベルで実行する必要がある構成ファイル。たとえば、Web パーツ登録用の Web.config ファイルなどがあります。
さらに、ソリューション パッケージの展開プロセス中に Office SharePoint Server 2007 を支援するマニフェスト ファイルを含める必要があります。マニフェスト ファイルには、ソリューション パッケージ内のすべてのアセットの一覧が、アセットの展開先と、設定する必要がある構成と共に格納されます。マニフェスト ファイルのスキーマ定義は Wss.xsd ファイルに保存され、このファイルが Office SharePoint Server 2007 システム フォルダに配置されます。
ソリューション パッケージの詳細については、MSDN の Windows SharePoint Services 3.0 ソフトウェア開発キット (SDK) に記載されている「ソリューションおよび Web パーツ パッケージ」(https://go.microsoft.com/fwlink/?linkid=106479&clcid=0x411) を参照してください。
以下のセクションでは、ソリューション パッケージ ファイルの要素について個別に説明します。
Solution 要素
Solution 要素は、マニフェスト ファイルのルート要素です。SolutionId 属性は、このファイルの重要な要素であり、構成データベースの一部であるソリューション ストア内のソリューションを識別します。ソリューションは、グローバル一意識別子 (GUID) を使用して識別します。次に例を示します。
<Solution SolutionId="dda6427b-b880-46c0-a428-10c4bac0ce91" xmlns="https://schemas.microsoft.com/sharepoint/" >
</Solution>
DeploymentServerType と ResetWebServer は、オプションの属性です。DeploymentServerType には、ApplicationServer と WebFrontEnd という 2 つの有効値があります。通常、大半のソリューションは、サーバー ファーム内の Web サーバーを対象にします。インデックス サーバー、Excel Services を実行中のサーバー、ドキュメント変換サーバーなど、アプリケーション サーバーを対象とするソリューションの例として、カスタム構成や追加カスタム コンバータが挙げられます。IISReset 属性は、ソリューションが特定のインターネット情報サービス (IIS) Web アプリケーションに展開されるときに、IIS のリセットを開始するために使用できます。
FeatureManifest 要素
フィーチャーはソリューションのコンポーネント (フィールドの型、Web パーツ、ワークフローなど) を表すので、多くの SharePoint 製品とテクノロジ ソリューションで重要な役割を果たします。ソリューションに含まれるすべてのフィーチャーを FeatureManifest 要素で表す必要があります。次のコード例には、Web パーツを SharePoint サイトにアドバタイズするフィーチャーが含まれています。
<Solution SolutionId="dda6427b-b880-46c0-a428-10c4bac0ce91" xmlns="https://schemas.microsoft.com/sharepoint/" >
<FeatureManifests>
<FeatureManifest Location="HelloWorldWebPart_28c3eefe-2c03-4791-9f69-4405c80e1d92\feature.xml" />
</FeatureManifests>
…
</Solution>
ソリューションを Web サーバーに展開すると、フィーチャーに関連するすべてのファイルが、指定の場所にコピーされます。
Assembly 要素
大半の SharePoint ソリューションには、1 つ以上の .NET Framework アセンブリが含まれます。Assembly 要素は、マニフェスト ファイルの中で、展開先サーバーでのダイナミック リンク ライブラリ (DLL) の使用を可能にするために使用されます。次に例を示します。
<Solution SolutionId="dda6427b-b880-46c0-a428-10c4bac0ce91" xmlns="https://schemas.microsoft.com/sharepoint/" >
…
<Assemblies>
<Assembly Location="HelloWorldWebPart.dll" DeploymentTarget="GlobalAssemblyCache" >
<SafeControls>
<SafeControl Assembly="HelloWorldWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9f4da00116c38ec5" Namespace="MSDN" TypeName="HelloWorldWebPart" Safe="True" />
</SafeControls>
</Assembly>
</Assemblies>
</Solution>
Assembly 要素の最初の属性は Location です。この属性は、DLL の相対パスをソリューション ファイルに保存します。次の DeploymentTarget 属性には、GlobalAssemblyCache と WebApplication という 2 つの設定可能な値があります。GlobalAssemblyCache は、アセンブリをグローバル アセンブリ キャッシュに展開することを示します。WebApplication は、アセンブリを IIS Web アプリケーションのプライベート アプリケーション フォルダにドロップするように Windows SharePoint Services 3.0 に通知します。後で説明するように、WebApplication は、使用されるソリューションが、管理者によって IIS Web アプリケーションに関連付けられた Web.config ファイルの中に設定された信頼レベルによって決まることを示唆します。完全に信頼された場所であるグローバル アセンブリ キャッシュにアセンブリを展開することは、開発者がこの信頼レベルの設定について煩わされる必要がないことを意味します。
ソリューション内の Web パーツは、Web.config ファイル内に安全なコントロールとして登録する必要があります。Assembly 要素には、1 つ以上の SafeControl 要素を格納できます (SafeControls 要素にグループ化されます)。それぞれの SafeControl 要素は、Web.config ファイルで実行する必要がある構成を記述します。
Assembly 要素の子要素になることができる別の要素として、ClassResource 要素があります (ClassResources 要素にグループ化されます)。この要素は、展開されたアセンブリが必要とする可能性があるリソースを表します。例として、リソース ファイル、XML ファイル、ピクチャがあります。
ApplicationResourceFile 要素
マニフェスト ファイルには、1 つ以上の ApplicationResourceFile 要素を、展開する必要があるリソース ファイルへの相対パスと共に格納できます。展開時に、これらのリソース ファイルが、IIS Web アプリケーションのプライベート アプリケーション リソース フォルダにコピーされます。次に例を示します。
<Solution SolutionId="8f37f0a7-ec35-4a63-9c3d-91205d9a2ac6"
xmlns="https://schemas.microsoft.com/sharepoint/" >
…
<ApplicationResourceFiles>
<ApplicationResourceFile Location="hellowp.resx"/>
<ApplicationResourceFile Location="hellowp.en-us.resx"/>
</ApplicationResourceFiles>
</Solution>
CodeAccessSecurity 要素
コードに対する特定のアクセス許可を付与する場合は、CodeAccessSecurity 要素をマニフェスト ファイルに含める必要があります。CodeAccessSecurity 要素には 1 つ以上の PolicyItem 子要素が含まれ、それぞれの子要素が、ソリューションで適用するコード アクセス セキュリティ ポリシーに関する仕様を定義します。ポリシー アイテムは、ポリシーの一部であるアクセス許可リストと、それらのアクセス許可が適用されるアセンブリという、2 つの部分で構成されます。
IPermission 要素で表されるアクセス許可リストは、PolicyItem 要素の子要素である PermissionSet 要素にまとめられます。各 IPermission 要素は、アセンブリを正常に実行するために必要なコード アクセス セキュリティ アクセス許可を定義します。
コード アクセス セキュリティを強化するために、1 つ以上の Assembly 要素を使用できます。要素は 1 つずつ定義し、名前、バージョン、および完全公開キーによって識別する必要があります。
DwpFile 要素
Web パーツを [Web パーツ] ページにドロップする前に、Web パーツ ギャラリーで Web パーツを使用できるようにする必要があります。拡張子が .dwp または .webpart である XML ファイルには、Web パーツを使用可能にするために必要なメタデータ情報が保存されます。このソリューション マニフェスト ファイルには、1 つ以上の DwpFile 要素を格納できます (DwpFiles 要素にまとめられます)。各要素は、これらのファイルのいずれかをポイントします。次に例を示します。
<DwpFiles>
<DwpFile FileName="hellowebpart.webpart" Location="hellowebpart.webpart"/>
</DwpFiles>
Resource 要素
リソース ファイルは、フィーチャーを格納するフォルダにドロップし、その場所から使用できます。Resource 要素は、ソリューション マニフェスト ファイル内のそのようなリソースを表します。設定する唯一の属性は、パッケージ内のリソース ファイルへの相対パスです。
SiteDefinitionManifest 要素
この要素は、カスタム サイト定義を展開するときに使用します。SiteDefinitionManifest 要素には、指定されたフォルダ内のすべてのファイルをピックアップし、\12\Template\SiteTemplates フォルダの中に必要なフォルダを作成する Location 属性があります。WebTempFile 子要素は webtemp*.xml ファイルを展開して、SharePoint 製品とテクノロジがテンプレートを認識するようにします。次に例を示します。
<SiteDefinitionManifests>
<SiteDefinitionManifest Location="LitwareSiteTemplate">
<WebTempFile Location="1033\xml\webtempLitware.xml" />
</SiteDefinitionManifest>
</SiteDefinitionManifests>
RootFile 要素
ソリューション ファイルは、ソリューション マニフェスト ファイルに RootFile 要素を挿入することで、\12 フォルダの直下の特定のフォルダにコピーできます。
TemplateFile 要素
TemplateFile 要素を使用して、\12\Template フォルダの下に展開する必要があるテンプレート ファイルを定義できます。この方法で展開できるファイルの例として、カスタム フィールドの型の詳細を定義する fldtypes*.xml ファイルが挙げられます。ファイルの相対パスを指定するには、Location 属性を使用します。
このブックのダウンロード
このトピックは、読みやすく印刷しやすい次のダウンロード可能なブックに含まれています。
使用できるすべてのブックの一覧については、「Office SharePoint Server 2007 のダウンロード可能なブック」を参照してください。