Suraj Poozhiyil および Jeremy Martin
Microsoft Corporation
May 2003
日本語版最終更新日 2003 年 8 月 25 日
適用対象:
Microsoft® Windows® SharePoint™ Services
Microsoft Office SharePoint Portal Server 2003
Microsoft Visual Studio® .NET
Web パーツ インフラストラクチャ
要約: Microsoft Windows SharePoint Services に付属の管理ツールを使用して Web パーツをパッケージ化および配置する方法について説明します。この記事には英語のページへのリンクも含まれています。
注: この記事の情報は、Windows SharePoint Services プラットフォーム上に構築された Microsoft Office SharePoint Portal Server 2003 にも適用されます。
目次
はじめに
Web パーツ パッケージを構築する
Web パーツ パッケージを配置する
Web パーツ パッケージを追加する
Web パーツ パッケージを削除する
Web パーツ パッケージを列挙する
スイッチ
Web パーツ パッケージをインストールする
まとめ
はじめに
Web パーツは、コンパイルされた単なるアセンブリではありません。Web パーツには、イメージ、Microsoft JScript® ファイル、ヘルプ ファイルなどのクラス リソースがある場合があります。これらのファイルは、ローカライズして、Web パーツとは異なる場所に配置することもできます。また、ユーザーが Web パーツの機能を利用するには、Web パーツを特定の仮想サーバーの SafeControl リストに追加する必要があります。
前提条件
- Microsoft Windows SharePoint Services または Microsoft Office SharePoint Portal Server 2003、あるいはその両方の知識
- Web パーツの作成方法に関する知識
- Web パーツ インフラストラクチャの知識
Web パーツ パッケージを構築する
Web パーツ パッケージは、次のアイテムを含むキャビネット (.cab) ファイルです。
- Manifest.xml (必須)
- Web パーツ アセンブリ (オプション)
- クラス リソース ファイル (オプション)
- .dwp ファイル (オプション)
.cab ファイルのマニフェスト ファイルを作成する
マニフェスト ファイルは、.cab ファイルの構造とコンテンツを記述する構成ファイルであり、.cab ファイルの唯一の必須コンポーネントです。Stsadm.exe ツールはこのファイルを使用して、.cab ファイルのその他のコンテンツを配置します。
次の表は、Manifest.xml ファイル内のノードとサブノードの説明です。
| ノード |
親ノード |
説明 |
| WebPartManifest |
WebPartManifest |
XML のスキーマを定義します。 |
| Assemblies |
WebPartManifest |
配置される各アセンブリの定義を保持します。 |
| Assembly |
Assemblies |
FileName 属性を使用してアセンブリ ファイル名を定義します。また、クラス リソースの定義と SafeControls リストの XML を保持します。 |
| ClassResources |
Assembly |
配置される各クラス リソースの定義を保持します。 |
| ClassResource |
ClassResources |
FileName 属性を使用してクラス リソース ファイル名を定義します。 |
| SafeControls |
Assembly |
SafeControls リスト内の XML の各行の定義を保持します。 |
| SafeControl |
SafeControls |
SafeControls リストの各行を定義します。 |
| DwpFiles |
WebPartManifest |
配置される各 .dwp ファイルの定義を保持します。 |
| DwpFile |
DwpFiles |
FileName 属性を使用して、.dwp ファイルのファイル名を定義します。 |
次の例に、2 つのアセンブリおよびそれらのリソースを配置するパッケージのマニフェスト ファイルを示します。
<?xml version="1.0" encoding="utf-8" ?>
<WebPartManifest xmlns="http://schemas.microsoft.com/WebPart/v2/Manifest">
<Assemblies>
<Assembly FileName="WebPartLibrary1.dll">
<ClassResources>
<ClassResource FileName="image1.gif"/>
<ClassResource FileName="image2.gif"/>
</ClassResources>
<SafeControls>
<SafeControl Namespace="WebPartLibrary1" TypeName="*"/>
</SafeControls>
</Assembly>
<Assembly FileName="WebPartLibrary2.dll">
<ClassResources>
<ClassResource FileName="MyCustomHelp.htm"/>
<ClassResource FileName="LargeIcon.gif"/>
</ClassResources>
<SafeControls>
<SafeControl Namespace="WebPartLibrary2" TypeName="*"/>
</SafeControls>
</Assembly>
</Assemblies>
<DwpFiles>
<DwpFile FileName="WebPart1.dwp"/>
<DwpFile FileName="WebPart2.dwp"/>
</DwpFiles>
</WebPartManifest>
.cab ファイルを作成する
開発者は、次のいずれかの方法で .cab ファイルを作成できます。
- Microsoft Visual Studio .NET Professional を使用して CAB プロジェクトを作成する。
- Microsoft Windows 2000 以降に組み込まれているコマンド ライン ツール MakeCAB.exe を使用する。
Visual Studio を使用する
Visual Studio.NET Professional を使用して CAB プロジェクトを作成するには、次の手順を実行します。
- Visual Studio .NET を起動します。
- 新しいソリューションを作成します。
- [ファイル] メニューの [新規作成] をポイントし、[空のソリューション] をクリックします。
- ソリューションの名前を入力し、[OK] をクリックします。
- このソリューションに Web パーツ プロジェクトを開きます。
- ソリューション エクスプローラで、新しいソリューションを右クリックし、[追加] をポイントして [既存のプロジェクト] をクリックします。
- 追加する Web パーツ プロジェクトの場所を選択してプロジェクトをクリックし、[開く] をクリックします。
- 新しい CAB プロジェクトを作成します。
- ソリューション エクスプローラで、新しいソリューションを右クリックし、[追加] をポイントして [新しいプロジェクト] をクリックします。
- [プロジェクトの種類] で [セットアップ/デプロイメント プロジェクト] をクリックし、[テンプレート] で [CAB プロジェクト] をクリックします。
- CAB プロジェクトの名前を入力し、[OK] をクリックします。
- Web パーツ プロジェクトの出力を CAB プロジェクトに追加します。
- ソリューション エクスプローラで、CAB プロジェクトを右クリックし、[追加] をポイントして [プロジェクト出力] をクリックします。
- [プロジェクト] ボックスで、手順 3 でソリューションに追加した Web パーツ プロジェクトをクリックします。
- 一覧に表示されるすべての適切なファイル カテゴリを選択し、[OK] をクリックします。
[プライマリ出力] と [コンテンツ ファイル] を必ず選択します。これらのカテゴリによって、Manifest.xml ファイル、.dwp ファイル、および Web パーツ アセンブリが .cab ファイルに追加されます。Manifest.xml ファイルおよび .dwp ファイルが、それぞれのプロパティ シート内でビルド アクションのコンテンツとしてマークされていることを確認します。
- ソリューションをビルドして .cab ファイルを作成します。
MakeCAB.exe を使用する
MakeCAB.exe は、Windows 2000 以降に組み込まれているツールです。MakeCAB.exe を使用して .cab ファイルを作成するには、次の手順を実行します。
- makecab.exe のディレクティブ ファイルを作成し、.ddf 拡張子を付けて保存します。次のサンプル ディレクティブ ファイル (sample.ddf) では、Web パーツ ライブラリ プロジェクトの .cab ファイルが作成されます。
;*** サンプル ソース コード MakeCAB ディレクティブ ファイルの例
;
.OPTION EXPLICIT ; エラーを生成します。
.Set CabinetNameTemplate=SampleCab.cab
.set DiskDirectoryTemplate=CDROM ; すべてのキャビネットを 1 つのディレクトリに
含めます。
.Set CompressionType=MSZIP;** すべてのファイルがキャビネット ファイルに圧縮されます。
.Set UniqueFiles="OFF"
.Set Cabinet=on
.Set DiskDirectory1=SAMPLECAB.CAB
manifest.xml
WebPart1.dwp
WebPartLibrary1.dll
;*** <the end>
- .cab ファイルに含めるすべてのファイルを、.ddf ファイルを作成したディレクトリにコピーします。この例では、これらのファイルは Manifest.xml ファイル、WebPart1.dwp ファイル、および WebPartLibrary1.dll ファイルです。
- コマンド プロンプトを開き、.ddf ファイル、および .cab ファイルに含めるファイルが格納されているディレクトリに移動し、次のコマンドを実行します。
Makecab.exe /F sample.ddf
MakeCAB.exe は、SAMPLECAB.CAB というディレクトリを作成し、このディレクトリに SampleCab.cab という名前の .cab ファイルを作成します。このファイルには、Sample.ddf ディレクティブ ファイルにリストされている 3 つのファイルが含まれます。
MakeCAB.exe の詳細については、Microsoft Cabinet Software Development Kit をダウンロードしてください。
ローカライズされたリソースのある CAB ファイルを作成する
Visual Studio は、内部ディレクトリのある .cab ファイルの作成をサポートしていません。ただし、ローカライズされた Web パーツでは、内部ディレクトリのある .cab ファイルが必要になる場合があります。そのため、MakeCAB.exe や他のサードパーティ製 CAB ユーティリティなどのツールを使用して、ローカライズされた Web パーツを配置する必要があります。
次の例では、ドイツ語にローカライズされたリソースも提供する SampleWebPartLibrary という名前の英語の Web パーツ プロジェクト用の .cab ファイルの作成方法を説明します。この例の .cab ファイルは Sample.cab という名前で、次のファイルを含んでいる必要があります。
- SampleWebPartLibrary.dll
- Help.htm
- Image1.gif
- WebPart1.dwp
- de-DE/Help.htm
- de-DE/Image1.gif
- de-DE/WebPart1.dwp
この Web パーツ プロジェクト例の .cab ファイルを作成するには、次の手順を実行します。
- 適切な Manifest.xml ファイルを作成します。次の例に、Sample.cab ファイルの Manifest.xml ファイルを示します。
<?xml version="1.0" encoding="utf-8" ?>
<WebPartManifest
xmlns="http://schemas.microsoft.com/WebPart/v2/Manifest">
<Assemblies>
<Assembly FileName="SampleWebPartLibrary.dll">
<ClassResources>
<ClassResource FileName="image1.gif"/>
<ClassResource FileName="help.htm"/>
<ClassResource FileName="de-DE\image1.gif"/>
<ClassResource FileName="de-DE\help.htm"/>
</ClassResources>
<SafeControls>
<SafeControl Namespace="SampleWebPartLibrary"
TypeName="*"/>
</SafeControls>
</Assembly>
</Assemblies>
<DwpFiles>
<DwpFile FileName="WebPart1.dwp"/>
<DwpFile FileName="de-DE\WebPart1.dwp"/>
</DwpFiles>
</WebPartManifest>
- 適切な Makecab.exe ディレクティブ ファイルを作成します。次の例に、Sample.cab ファイルのディレクティブ ファイルを示します。
;*** サンプル ソース コード MakeCAB ディレクティブ ファイルの例
;
.OPTION EXPLICIT ; エラーを生成します。
.Set CabinetNameTemplate=Sample.cab
.set DiskDirectoryTemplate=CDROM ; すべてのキャビネットを 1 つのディレクトリに
含めます。
.Set CompressionType=MSZIP ;** すべてのファイルがキャビネット ファイルに圧縮され
ます。
.Set UniqueFiles="OFF"
.Set Cabinet=on
.Set DiskDirectory1=SAMPLE.CAB
manifest.xml
WebPart1.dwp
SampleWebPartLibrary.dll
Image1.gif
help.htm
.Set DestinationDir=de-DE
de-DE\WebPart1.dwp
de-DE\image1.gif
de-DE\help.htm
;*** <the end>
- .cab ファイルに含めるすべてのファイルを、.ddf ファイルを作成したディレクトリにコピーし、ローカライズしたすべてのリソースを適切なサブディレクトリにコピーします。次の例に、Sample.cab ファイルのディレクトリ構造を示します。
\ディレクティブ ファイルのあるディレクトリ
Sample.ddf
Manifest.xml
SampleWebPartLibrary.dll
WebPart1.dwp
Image1.gif
Help.htm
\de-DE
WebPart1.dwp
Image1.gif
Help.htm
- コマンド プロンプトを開き、.ddf ファイル、および .cab ファイルに含めるファイルが格納されているディレクトリに移動し、次のコマンドを実行して、Sample.cab ファイルにサブディレクトリを作成し、Sample.cab ファイルの配置を準備します。
Makecab.exe /F sample.ddf
Web パーツ パッケージを配置する
管理者は、Stsadm.exe ツールを使用して、開発者が作成した .cab ファイルを配置できます。Stsadm.exe は、Windows SharePoint Services コンピュータの管理に使用できるコマンド ライン ツールです。3 つの Stsadm.exe オプションが Web パーツ パッケージの配置に適用されます。
- AddWPPack
- DeleteWPPack
- EnumWPPacks
特定の Stsadm.exe コマンド ライン オプションの詳細については、コマンド プロンプトで次の行を入力します。
stsadm -help option
Web パーツ パッケージを追加する
Stsadm.exe コマンドを使用して、Windows SharePoint Services を実行しているサーバー コンピュータに Web パーツ パッケージを配置するには、コマンド プロンプトを開き、次のコマンドを入力します。
stsadm.exe -o addwppack
-filename Web_Part_Pack_name
[-url URL]
[-globalinstall]
[-force]
Web パーツ パッケージが同じコンピュータの別の仮想サーバーに既にインストールされている場合に Web パーツ パッケージを仮想サーバーにインストールするには、次のコマンドを使用します。
stsadm.exe -o addwppack
-name Web_Part_Pack_name
[-url URL]
[-globalinstall]
[-force]
スイッチ
次の表で、Web パーツ パッケージの追加をサポートする Stsadm.exe コマンド ライン スイッチを説明します。
| スイッチ |
説明 |
-url |
Web パーツ パッケージをインストールする仮想サーバーの URL を指定します。
注: このスイッチを使用しない場合、パッケージはコンピュータ上のすべての Windows SharePoint Services 対応仮想サーバーにインストールされます。 |
-name |
Web パーツ パッケージを構成データベースから仮想サーバーにインストールします。パッケージがコンピュータに初めてインストールされたときに、Stsadm.exe は構成データベースに .cab ファイルのコピーを作成します。サーバー ファーム配置では、管理者がフロントエンドの Web サーバーに Web パーツ パッケージをインストールした後で、.cab ファイルをローカルにコピーすることなくすべてのフロントエンド Web サーバーに Web パーツ パッケージをインストールできます。 |
-globalinstall |
Web パーツ パッケージをグローバル アセンブリ キャッシュ (GAC) にインストールします。Web パーツ パッケージ内の厳密な名前の Web パーツ アセンブリだけが GAC にインストールされます。他のすべてのアセンブリは、仮想サーバーの Bin ディレクトリにインストールされます。 |
-force |
Stsadm.exe でインストール済み Web パーツ パッケージを強制的に上書きします。コマンド ラインで指定した Web パーツ パッケージがサーバーに既に存在する場合は、このスイッチを使用して、そのパッケージを上書きできます。 |
-filename |
Stsadm.exe に、コマンド ラインにパスで指定した .cab ファイルの使用を強制します。 |
Web パーツ パッケージを削除する
Windows SharePoint Services を実行しているコンピュータ上の指定した仮想サーバーから Web パーツ パッケージを削除するには、コマンド プロンプトを開き、次のコマンドを入力します。
stsadm.exe -o deletewppack
-name Web_Part_Pack_name
[-url URL]
スイッチ
次の表で、Web パーツ パッケージの削除をサポートする Stsadm.exe コマンド ライン スイッチを説明します。
| スイッチ |
説明 |
-name |
削除する Web パーツ パッケージの指定に使用されます。 |
-url |
削除する Web パーツ パッケージを含む仮想サーバーの URL を指定します。
注: このスイッチを使用しない場合、コンピュータ上のすべての Windows SharePoint Services 対応仮想サーバーからパッケージが削除されます。 |
Web パーツ パッケージを列挙する
Windows SharePoint Services を実行しているコンピュータにインストールされているすべての Web パーツ パッケージをリストするには、コマンド プロンプトを開き、次のコマンドを入力します。
stsadm.exe -o enumwppacks
[-name Web_Part_Pack_name]
[-url URL]
[-farm]
スイッチ
次の表で、Web パーツ パッケージの列挙をサポートする Stsadm.exe コマンド ライン スイッチを説明します。
| スイッチ |
説明 |
-name |
指定した Web パーツ パッケージがインストールされているかどうかを判断します。 |
-url |
列挙する Web パーツ パッケージを含む仮想サーバーの URL を指定します。このスイッチを使用しない場合、コンピュータ上のすべての Windows SharePoint Services 対応仮想サーバーにインストールされているすべてのパッケージがリストに含まれます。 |
-farm |
Windows SharePoint Services のサーバー ファーム配置にインストールされているすべての Web パーツ パッケージを列挙します。 |
Web パーツ パッケージをインストールする
Web パーツ パッケージのインストール先を GAC にするか、または Bin ディレクトリにするかを決定するには、次の質問について検討します。
- このパッケージをコンピュータ上のすべての仮想サーバーで使用可能にしますか。
- パッケージのアセンブリおよびリソースを完全に信頼しますか。
両方の質問に対する回答が "はい" の場合は、Web パーツ パッケージを GAC にインストールします。GAC 内のアセンブリは完全に信頼され、すべての仮想サーバーから使用できるようになります。
次の表に、GAC へのインストールと Bin ディレクトリへのインストールの違いを示します。
| 項目 |
GAC |
Bin ディレクトリ |
| アセンブリの場所 |
local_drive:\Windows\Assembly |
local_drive:\virtual_server_file system_location\bin |
| クラス リソース |
local_drive:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\wpresources
URL: http://virtual_server/_wpresources |
local_drive:\ virtual_server_file system_location\wpresources
URL: http://virtual_server/wpresources |
| 既定のセキュリティ信頼レベル |
完全 |
一部 (WSS_Minimal) |
| すべての仮想サーバーからアクセス可能か |
可 (各仮想サーバーの SafeControls リストでアセンブリと種類が有効になっている必要があります) |
不可 (Web パーツ パッケージは、アセンブリがインストールされている仮想サーバーからしかアクセスできません) |
| Stsadm.exe の使用の前提条件 |
アセンブリは、厳密な名前のアセンブリである必要があります。 |
|
| -globalinstall スイッチを使用する必要があるか |
ある |
ない |
注: アセンブリを Bin ディレクトリにインストールし、アセンブリが Bin ディレクトリの既定のポリシーを超えるコード アクセス セキュリティ権限を必要とする場合は、配置の完了後にこれらの権限を割り当てることができます。コード アクセス セキュリティの詳細については、「Microsoft SharePoint Products and Technologies Developer Center」から入手できる Microsoft Windows SharePoint Services 2.0 Software Development Kit (SDK) を参照してください。
まとめ
Stsadm.exe を使用して、Web パーツ パッケージを GAC または指定した仮想サーバーの Bin ディレクトリに配置できます。これにより、必要に応じて組織全体に、またはサイトを限定して Web パーツ パッケージを配置できます。