カスタム サイト定義をアップグレードする
最終更新日: 2010年4月6日
適用対象: SharePoint Foundation 2010
この記事の内容
ASPX ページを更新する
Onet.xml を編集する
最終的に考慮する事項
前のバージョンの SharePoint Foundation では、多くのカスタマイズにサイト定義のカスタマイズが必要になりますが、通常、この作業には STS サイト定義のコピーと、コピーした定義内にあるリスト スキーマ、ページ、その他の構造要素の修正が含まれます。カスタム サイト定義の大部分はカスタマイズされていません。つまり、基本的な特性の多くは STS サイト定義と同じままになっています。
前のバージョンのカスタム サイト定義と同等のカスタム サイト定義を現在のバージョンで得る方法は、サイト定義と加えたカスタマイズの種類によって変わります。それが基本としていたサイト定義に関してそれほど多くのカスタマイズを加えていないサイト定義の場合は、そのサイト定義と同等の現在の定義を作成し、以前のカスタマイズを含むように新しい定義を改良することをお勧めします。たとえば、前のバージョンのサイト定義に加えていたカスタマイズが、機能を使用したカスタム リストの追加だけだったり、ユーザー設定の外観を得るために Default.aspx ページをカスタマイズしただけだった場合は、現在のバージョンのサイト定義を新しいカスタム サイト定義の基本として使用し、機能をアップグレードします (「フィーチャーをアップグレードする」を参照)。一方、もっと幅広いカスタマイズを行っていた場合は、前のサイト定義を現在の同等のサイト定義に変換した方がよいでしょう。以降では、前のバージョンのカスタマイズしたサイト定義を、現在のバージョンの正しいサイト定義に変換する方法について説明します。
ASPX ページを更新する
前のバージョンのサイト定義に基づいた Web サイトをホストする場合、SharePoint Foundation は、それらがその展開内で確実に機能するように互換モードでページを実行します。ただし、現在のバージョンのサイト定義からページを実行するときには、パフォーマンス上の理由で、SharePoint Foundation はページを互換モードでは実行しません。このため、SharePoint Foundation のサイト定義を作成する場合は、Microsoft ASP.NET ページをある程度修正する必要があります。
前のバージョンのサイト定義内の ASPX ページをカスタマイズしていない場合は、現在のバージョンのサイト定義の Default.aspx ページをコピーするのが適切な実践方法です。たとえば、サイトがカスタム サイト定義に基づいており、このカスタム サイト定義がもともとは STS サイト定義に基づいていた場合、このページは、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates\sts\xml フォルダーに配置されます。
Web パーツ ページが正常に機能するには、そのページすべてに ASP.NET Web パーツ マネージャーが含まれていなければなりません。したがって、カスタマイズした ASPX ページがある場合は、それらに Web パーツ マネージャーを追加する必要があります。これを行うには、<WebPartPages:SPWebPartManager id="m" runat="Server" /> をページに挿入します。
注意
すべての SharePoint マスタ ページが Web パーツ マネージャを含んでいるため、ASP.NET ページをマスタ ページに基づかせるという手順を取るのが適切な実践方法です。マスタ ページに基づいたインフラストラクチャからはより大きな柔軟性が得られます。また、マスタ ページは、SharePoint Foundation 機能の共通部分を確実にページに含める助けとなります。詳細については、「マスター ページ」を参照してください。
Onet.xml を編集する
Onet.xml ファイルの構造は、基本的な方法で変更されています。前のバージョンのカスタム サイト定義の Onet.xml をカスタマイズしていない場合は、現在のバージョンの Onet.xml ファイルを %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates\sts\xml フォルダーからサイト定義にコピーするのが適切な実践方法です。
SharePoint Foundation では、セットアップ ディレクトリ内にあるすべての XML ファイルが、リソース式 ($Resources) を使用して、言語パックがインストールされているすべての言語に対して動作するようになっています。前のバージョンのサイト定義を複数の言語で動作するようにして、このリソースの拡張された使用方法による恩恵を受けるには、前のバージョンの XML ファイルに多数の変更を加える必要があります。この場合、現在のバージョンの STS サイト定義をコピーして、それにカスタマイズを追加するのが最もよい方法です。
前のバージョンのサイト定義で Onet.xml ファイルをカスタマイズした場合は、そのファイルを現在のバージョンでうまく動作するように修正する必要があります。以下の基本手順は、以前の Onet.xml ファイルを現在のサイト定義と一貫性を持たせるのに有用です。
その定義で作成された Web サイトが一貫して現在の SharePoint Foundation 基本リストの種類を使用するようにするために、Onet.xml ファイルから <BaseTypes> セクションを削除しなければならない場合があります。基本リストの種類は既定で SharePoint Foundation サイトに含まるようになっているため、ファイル内で定義する必要はありません。
前のバージョンの Onet.xml ファイルから標準リストを削除します (存在する場合)。SharePoint 機能に必要な多くのリストが、既定で SharePoint Foundation に含まれるようになっており、Onet.xml ファイル内で定義する必要はなくなっています。詳細については、「標準リスト定義をアップグレードする」を参照してください。
Name 属性が webtemp、listtemp、wplib、または datasrcs になっているリストの <ListTemplate> タグを削除します (存在する場合)。また、LISTS\WEBTEMP フォルダー、LISTS\LISTTEMP フォルダー、LISTS\wplib フォルダー、および LISTS\DATASRCs フォルダーを削除することにより、それらのリストの基本となっているリスト定義も削除します (存在する場合)。<Configurations> セクションから Type 属性が 113 (Web テンプレート ギャラリー)、114 (リスト テンプレート ギャラリー)、または 111 (Web パーツ ギャラリー) になっている各 <List> タグを削除します。
<DocumentTemplates> セクションを現在のドキュメント テンプレートにマッピングすることを検討します。サイト定義内のドキュメント テンプレートを表す体系はバージョン間で大幅には変更されていません。ドキュメント テンプレートは、まだロケールごとのディレクトリに格納されています。
特定のサイト定義について、対応するドキュメント テンプレート ファイルのセットが %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\<ロケール ID>\<サイト定義名> ディレクトリ内にあることを確認する必要があります。ただし、ドキュメント テンプレート ファイルをカスタマイズしていない場合は、単にサイト定義がドキュメント テンプレートを再利用するようにするだけでもかまいません。これを行うには、Onet.xml ファイル内の各 <DocumentTemplate> ノードをコメントにし、Path="STS" を指定します。
最終的に考慮する事項
サイト定義をカスタマイズした後は、それを SharePoint Foundation 2010 内でテストして、その定義を通じて作成した新しい Web サイトが期待どおりに機能することを確認します。適切な SharePoint Foundation サイト定義を作成し終えたら、次の手順は、前のバージョンのサイト定義を現在のバージョンにマッピングするアップグレード定義を作成することです。