カスタム サイト定義および構成を作成する
最終更新日: 2011年2月2日
適用対象: SharePoint Foundation 2010
カスタム サイト定義を作成するのに決まった手順はありません。これは完全な宣言型開発タスクです。まず行う必要があるのは、Collaborative Application Markup Language (CAML) マークアップを 2 つの重要なファイル、WebTemp*.xml ファイルおよび Onet.xml ファイルに追加する作業です。状況に応じて、1 つ以上のカスタム サイト ページも作成します。また、カスタム サイトの種類のグローバリゼーションに向けて確実に準備するために、1 つ以上のリソース (.resx) ファイルを作成することもできます。
場合によっては、組み込みのリストの種類、コンテンツ タイプ、列の種類、および他のフィーチャーの組み合わせを変更することで、どの組み込みサイトの種類とも異なるカスタム サイトの種類を作成できることがあります。しかし、Microsoft SharePoint Foundation ソリューションに新しいサイトの種類が必要なときは、多くの場合、1 つ以上のカスタム コンテンツ タイプ、カスタム フィールド タイプ、カスタムのリストの種類、カスタム Web パーツ、カスタム モバイル Web パーツ アダプター、カスタム ドキュメント テンプレートなども必要です。カスタム サイト定義のマークアップでこれらの要素を参照できるように、まず、このような補助的な開発プロジェクトをすべて実行する必要があります。
プロジェクトをセットアップするには
Microsoft Visual Studio で、プロジェクト テンプレートの [SharePoint | 2010] セクションからサイト定義プロジェクトを作成し、そのプロジェクトを、サンドボックス ソリューションではなくファーム ソリューションにします。プロジェクトには、サイト定義の内部名としての役割も果たす名前を指定します。この名前はユーザーには表示されません。慣例により、サイト定義の名前はすべて大文字にします。また、スペースや他の文字は使用できません。サイト定義に複数の構成を設定する予定がある場合は、この用語が、カスタム サイトの種類のファミリ名としての役割を果たすことに注意してください。したがって、その役割に適した名前を指定する必要があります。このトピックで紹介する例では、RESEARCH という名前が使用されています。
注意
Visual Studio のサイト定義プロジェクト、およびこのドキュメントでは、通常、サイト定義は 1 つであること、つまり、WebTemp*.xml ファイルに 1 つの Template 要素が含まれることを前提としています。ただし、繰り返しになりますが、サイト定義内では複数のカスタム サイトの種類、つまり複数の構成を指定できます。しかし、1 つの WebTemp*.xml ファイルには複数のサイト定義を含めることができます。この場合、プロジェクトにはより汎用的な名前、たとえば会社の名前を付けることをお勧めします。また、1 つの WebTemp*.xml ファイルに複数のサイト定義が含まれる場合は、サイト定義ごとに個別の Onet.xml ファイルを Visual Studio プロジェクトに追加して、すべてのサイト定義に対して以下の「Onet.xml ファイルを構成するには」の手順を繰り返します。これは、各サイト定義に独自の Onet.xml ファイルが必要なためです。また、ソリューション パッケージによって、各ファイルが %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates の独自のサブディレクトリに確実に展開されるようにする必要もあります。この各サブディレクトリの名前は、WebTemp*.xml ファイルの対応する Template 要素の Name 属性と同じ名前である必要があります。
通常、サイト定義プロジェクトにはコードがなく、アセンブリもないはずです。ただし、Visual Studio では、すべてのプロジェクトについて、アセンブリが既定でコンパイルされます。また、プロジェクトにコードがない場合は、アセンブリにクラスが含まれません。しかし、Visual Studio では、ソリューション パッケージによってアセンブリが既定で展開されます。これは、意味のないアセンブリがグローバル アセンブリ キャッシュに追加されることを意味します。したがって、アセンブリにコンパイルされたプロジェクトに要素を追加しない限り、Visual Studio の既定の動作は無効にする必要があります。無効にしないと、ソリューションによって意味のないアセンブリが展開され、ファーム管理者や SharePoint 展開のデバッグ担当者が混乱する可能性があります。ソリューション エクスプローラーでプロジェクト名を選択すると、[プロパティ] ウィンドウが開きます。[パッケージにアセンブリを含める] プロパティを false に設定します。
WebTemp*.xml ファイルを構成するには
ソリューション エクスプローラーで、WebTemp*.xml ファイルを開きます。この例では、WebTemp_RESEARCH.xml ファイルです。
ヒント この手順を実行している間、組み込み WebTemp.xml ファイルをモデルとして開いておくと便利です。このファイルは、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\lcid\XML にあります (ここで、lcid は、言語/カルチャの数値 ID に置き換えてください。たとえば、英語の場合は 1033 になります)。作成するファイルは組み込みファイルにマージされるので、組み込みファイルは変更しないでください。カスタム ファイルの名前は、パターン WebTemp*.xml と必ず一致する必要があります。
Template 要素の ID 属性を 10000 以上の値に変更します。これにより、ID が、Microsoft によって今後作成されるサイト定義と競合しなくなります。ターゲット ファームに他のカスタム サイト定義がある場合は、各カスタム定義の ID が必ず一意になるようにしてください。
Template 要素には既定の Configuration 要素があります。サイト定義に複数の構成を指定する場合、つまり、サイト定義が、関連するサイトの種類のファミリを表している場合は、ファミリで必要なカスタム サイトの種類ごとに 1 つの Configuration 要素が作成されるように、その要素をコピーします。この例では、2 つの構成が作成されます。どのようなときに 1 つのサイト定義に複数の構成を指定する必要があるかの詳細については、「複数定義または複数構成のどちらかに決定する」を参照してください。
元の Configuration 要素の ID 属性は 0 のままにしますが、作成したコピーの番号は 1 から開始するように設定し直します。
各 Configuration 要素の Title 属性と Description 属性を、カスタム サイト構成に適した値に変更します。この名前と説明は、ユーザーが新しい Web サイトを作成するときにユーザー インターフェイス (UI) に表示されます。
カスタム サイトの構成からサイトを作成しているユーザーの UI に、カスタム サイトの種類のシンボルとして表示するカスタム イメージがある場合は、必要に応じて、ImageUrl 属性の値を変更します。
必要に応じて、各 Configuration 要素の DisplayCategory 値を変更します。この値により、ユーザーが Web サイトを作成するときに UI に表示される、サイトの構成のカテゴリの名前が設定されます。多くの場合、Template 要素の Name 属性に使用した文字列と同じ文字列を使用するのが適切です。また、会社名を使用してもよいでしょう。組み込み文字列である "Collaboration" または "Meetings" のどちらかを使用することもできます。"Custom" は使用しないようにすることをお勧めします。"Custom" カテゴリには、サイト定義の構成ではなく Web テンプレートが既定で含まれており、このパターンの維持を管理者が望む可能性があります。
すべての Configuration 要素で Hidden 属性の値を FALSE に設定します。
WebTemp*.xml ファイルのカスタマイズの詳細については、「WebTemp*.xml ファイルについて」および「Templates 要素 (サイト)」を参照してください。
以下のコードは、カスタム WebTemp_RESEARCH.xml ファイルの例です。このファイルでは、2 つの Configuration 要素を使用して、Research Collaboration サイトおよび Research Document Workspace サイトの各サイトに対してサイト定義の構成を定義しています。このサイト定義は両方とも UI の "Research & Development" と呼ばれるカテゴリに表示されます。
<?xml version="1.0" encoding="utf-8" ?>
<Templates xmlns:ows="Microsoft.SharePoint">
<Template Name="RESEARCH" ID="10001">
<Configuration ID="0" Title="Research Collaboration site"
Hidden="FALSE" ImageUrl="_layouts/images/stsprev.jpg"
Description="This definition creates a site for the Research
team to create, organize, and share general information."
DisplayCategory="Research & Development">
</Configuration>
<Configuration ID="1" Title="Research Document Workspace" Hidden="FALSE"
ImageUrl="_layouts/images/dwsprev.jpg" Description="This
definition creates a site for Research team colleagues to
work together on specific documents."
DisplayCategory="Research & Development">
</Configuration>
</Template>
</Templates>
注意
Microsoft SharePoint Foundation オブジェクト モデルでは、サイト定義の構成とその親サイト定義が、Microsoft.SharePoint.SPWebTemplate オブジェクトによって表されます。このオブジェクトの Name プロパティは定義名と定義 ID の間に "#" 記号を挿入し、名前と ID を連結します。したがって、前の例の 2 つのサイト定義の構成の名前は、"RESEARCH#0" および "RESEARCH#1" になります。
Onet.xml ファイルを構成するには
ソリューション エクスプローラーで、Onet.xml ファイルを開きます。
Web テンプレートではなく、サイト定義を作成するように選択したので、少なくとも次の箇条書き項目のいずれかを実行する必要があります。この操作は Web テンプレートでは行うことができません (カスタム サイト定義を作成するか、Web テンプレートを作成するかの詳細については、「カスタム Web テンプレートとカスタム サイト定義の使い分け」を参照してください)。
カスタム サイト定義から作成された Web サイトが送信元の電子メール メッセージに表示される、カスタム電子メールのフッターを登録します。これを行うには、ServerEmailFooter 要素を、Project 要素の子として追加します。詳細については、「ServerEmailFooter 要素 (サイト)」を参照してください。
カスタム ファイル ダイアログのポスト プロセッサまたはカスタム外部セキュリティ プロバイダーを使用するように、カスタム サイトの種類を構成します。これを行うには、Components 要素を、Project 要素の子として追加します。詳細については、「Components 要素 (サイト)」およびその子要素のトピックを参照してください。
カスタム サイト定義から作成された Web サイトのドキュメント ライブラリで使用するようにカスタム ドキュメントの種類を登録します。これを行うには、以下の手順を実行します。
DocumentTemplates 要素を Project 要素の子として追加し、DocumentTemplate 要素を DocumentTemplates 要素の子として追加します。
DocumentTemplate 要素の Path 属性を、カスタム WebTemp*.xml ファイルの Template 要素の Name 属性の値に使用したものと同じ名前に設定します。この例を引き続き使用するので、"RESEARCH" を使用します。
Microsoft によって今後作成されるドキュメント テンプレートと競合しないように、DocumentTemplate 要素の Type 属性を 10000 以上の値に設定します。
DocumentTemplate 要素の DisplayName 属性と Description 属性を適切な値に設定します。
必要に応じて、DocumentTemplate 要素の他の属性を追加して設定します。詳細については、「[方法] ドキュメント テンプレート、ファイルの種類、および編集するアプリケーションをサイト定義に追加する」、「DocumentTemplate 要素 (サイト)」、および「DocumentTemplates 要素 (サイト)」を参照してください。
DocumentTemplateFiles 子要素を新しい DocumentTemplate 要素に追加します。次に、少なくとも 1 つの DocumentTemplateFile 子要素をそれに追加し、属性を設定します。詳細については、「[方法] ドキュメント テンプレート、ファイルの種類、および編集するアプリケーションをサイト定義に追加する」および「DocumentTemplateFile 要素 (サイト)」を参照してください。
カスタム サイト定義のカスタム ドキュメント テンプレートごとにこの手順を繰り返します。各 DocumentTemplate 要素には異なる Type 属性値を指定する必要があります。後の手順で、カスタム サイトの種類のすべての組み込みドキュメント テンプレートを登録します。
Project 要素の次の属性を適切な値に設定します (Title と ListDir のみが必須です。ListDir 値は空の文字列にできます)。
ListDir
Revision
SiteLogoUrl
SiteLogoDescription
Title
UIVersion 属性は使用しないでください。これらの属性の詳細については、「Project 要素 (サイト)」を参照してください。
カスタム サイトで使用するために登録する必要がある組み込みドキュメント テンプレートがある場合は、次の手順で登録します。
DocumentTemplates 要素を、Project 要素の子として追加します (前の手順でまだ追加していない場合)。
必要に応じて、標準のチーム サイトの Onet.xml ファイル (%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\SiteTemplates\sts\XML にあります) から DocumentTemplate 要素をコピーして、自分の DocumentTemplates 要素に貼り付けます。
Configuration 要素の数が、前の手順で作成したカスタム WebTemp*.xml ファイルにある要素の数と正確に一致するように、Configuration 要素を Configurations 要素に追加します。
各 Configuration 要素の ID 属性を 0 から始まる連続した番号に設定します。今後 Configuration 要素に対して変更を行うと必ず、Onet.xml ファイルの構成によって、WebTemp*.xml ファイル内の同じ ID 番号を持つ構成の詳細が指定されることに注意してください。この例では、Onet.xml ファイル内の構成 0 によって、WebTemp_Research.xml の Research Collaboration サイト構成の詳細が指定され、構成 1 によって、Research Document Workspace 構成の詳細が指定されます。
各 Configuration 要素の Name 属性を設定します。Name 属性値は、WebTemp*.xml ファイル内の対応する構成の Title 属性値と必ずしも一致する必要はありません。慣例により、前者は後者の頭字語にします。この例では、"RC" という名前を構成 0 に、"RDW" という名前を構成 1 にそれぞれ指定します。
各 Configuration 要素で、必要に応じて List 子要素を Lists 要素に追加し、構成の 1 つから作成された各 Web サイトが、必要なリストで自動的に作成されるようにします (Lists 要素が空要素タグ <Lists /> の場合は、それを開始および終了タグ <Lists></Lists> に分割します)。
組み込みのリストの種類については、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates の下位フォルダーにある組み込み Onet.xml ファイルの 1 つから List 要素をコピーします。カスタムのリストの種類については、List 要素を作成する必要があります。たとえば、"My Custom List" という名前で、Type 属性が 10001 のリストの種類を定義する場合は、<List Title="My_Custom_List" Type="10001" Url="Lists/My_Custom_List" FeatureId="guid"/> を追加して Lists 要素を作成します。Url 属性に指定されているのは各リストのリスト定義が含まれるフォルダーの URL で、このフォルダーには、ASPX ファイル、Schema.xml ファイル、およびその他の関連ファイルが格納されています。QuickLaunchUrl 属性にはリストの AllItems.aspx ファイルへの完全パスが含まれており (指定されている場合)、これにより、リストがサイド リンク バー領域に表示されます。サイト定義の構成でのリスト登録の詳細については、「List 要素 (サイト)」および「構成要素: リストとドキュメント ライブラリ」を参照してください。
各 Configuration 要素で、必要に応じて Module 子要素を Modules 要素に追加し、構成の 1 つから作成された各 Web サイトが、必要なファイルで自動的に作成されるようにします。構成で参照する各モジュールを、Onet.xml ファイルの Configurations 要素外にあるメインの Modules 要素で定義する必要があります。Onet.xml ファイルでのモジュール登録の詳細については、「Module 要素 (サイト)」および「モジュール」を参照してください。
Configuration 要素で、必要に応じて Feature 子要素を SiteFeatures 要素および WebFeatures 要素に追加して、構成の 1 つから作成された各 Web サイトが、必要なフィーチャーで自動的に作成され、アクティブ化されるようにします。サイト コレクションを範囲とするフィーチャーを登録する場合は SiteFeatures 要素を、Web サイトを範囲とするフィーチャーを登録する場合は WebFeatures を使用します。作成するカスタム フィーチャーを含め、登録するフィーチャーは、Web サイトがサイト定義の構成に基づいて作成された時点で、既に %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES のサブフォルダーに展開されている必要があります。たとえば、コンテンツ タイプや列の種類を構成に追加できます。コンテンツ タイプの追加については、「[方法] サイトにコンテンツ タイプを追加する」を、列の種類の追加については、「[方法] サイトに列を追加する」を参照してください。SharePoint Foundation に含まれる組み込みフィーチャーを登録するには、Feature 要素を、組み込み Onet.xml ファイルの SiteFeatures 要素および WebFeatures 要素からコピーします。この組み込みファイルは、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates の下位フォルダーにあります。フィーチャー登録の詳細については、「WebFeatures 要素 (サイト)」および「SiteFeatures 要素 (サイト)」を参照してください。
以下のコードは、この例で使用されている Configurations 要素の例です。
<Configurations> <Configuration ID="0" Name="RC"> <Lists> <List FeatureId="00BFEA71-E717-4E80-AA17-D0C71B360101" Type="101" Title="$Resources:core,shareddocuments_Title;" Url="$Resources:core,shareddocuments_Folder;" QuickLaunchUrl="$Resources:core,shareddocuments_Folder;/Forms/AllItems.aspx" /> <List FeatureId="00BFEA71-6A49-43FA-B535-D15C05500108" Type="108" Title="$Resources:core,discussions_Title;" Url="$Resources:core,lists_Folder;/$Resources:core,discussions_Folder;" QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,discussions_Folder;/AllItems.aspx" EmailAlias="$Resources:core,discussions_EmailAlias;" /> <List FeatureId="00BFEA71-D1CE-42de-9C63-A44004CE0104" Type="104" Title="$Resources:core,announceList;" Url="$Resources:core,lists_Folder;/$Resources:core,announce_Folder;"> <Data> <Rows> <Row> <Field Name="Title">$Resources:onetid11;</Field> <Field Name="Body">$Resources:onetid12;</Field> <Field Name="Expires"><ows:TodayISO/></Field> </Row> </Rows> </Data> </List> <List FeatureId="00BFEA71-2062-426C-90BF-714C59600103" Type="103" Title="$Resources:core,linksList;" Url="$Resources:core,lists_Folder;/$Resources:core,links_Folder;" /> <List FeatureId="00BFEA71-EC85-4903-972D-EBE475780106" Type="106" Title="$Resources:core,calendarList;" Url="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;" QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;/Calendar.aspx" EmailAlias="$Resources:core,calendar_EmailAlias;" /> <List FeatureId="00BFEA71-A83E-497E-9BA0-7A5C597D0107" Type="107" Title="$Resources:core,taskList;" Url="$Resources:core,lists_Folder;/$Resources:core,tasks_Folder;" QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,tasks_Folder;/AllItems.aspx" /> </Lists> <Modules> <Module Name="Default" /> </Modules> <SiteFeatures> <Feature ID="00BFEA71-1C5E-4A24-B310-BA51C3EB7A57" /> </SiteFeatures> <WebFeatures> <Feature ID="00BFEA71-4EA5-48D4-A4AD-7EA5C011ABE5" /> </WebFeatures> </Configuration> <Configuration ID="1" Name="RDW"> <Lists> <List FeatureId="00BFEA71-E717-4E80-AA17-D0C71B360101" Type="101" Title="$Resources:core,shareddocuments_Title;" Url="$Resources:core,shareddocuments_Folder;" /> <List FeatureId="00BFEA71-6A49-43FA-B535-D15C05500108" Type="108" Title="$Resources:core,discussions_Title;" Url="$Resources:core,lists_Folder;/$Resources:core,discussions_Folder;" QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,discussions_Folder;" /> <List FeatureId="00BFEA71-D1CE-42de-9C63-A44004CE0104" Type="104" Title="$Resources:core,announceList;" Url="$Resources:core,lists_Folder;/$Resources:core,announce_Folder;"> <Data> <Rows> <Row> <Field Name="Title">$Resources:onetid11;</Field> <Field Name="Body">$Resources:onetid12;</Field> <Field Name="Expires"><ows:TodayISO/></Field> </Row> </Rows> </Data> </List> <List FeatureId="00BFEA71-2062-426C-90BF-714C59600103" Type="103" Title="$Resources:core,linksList;" Url="$Resources:core,lists_Folder;/$Resources:core,links_Folder;" /> <List FeatureId="00BFEA71-EC85-4903-972D-EBE475780106" Type="106" Title="$Resources:core,calendarList;" Url="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;" QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;/Calendar.aspx" /> <List FeatureId="00BFEA71-A83E-497E-9BA0-7A5C597D0107" Type="107" Title="$Resources:core,taskList;" Url="$Resources:core,lists_Folder;/$Resources:core,tasks_Folder;" /> </Lists> <Modules> <Module Name="DWS" /> </Modules> <SiteFeatures> <Feature ID="00BFEA71-1C5E-4A24-B310-BA51C3EB7A57" /> </SiteFeatures> <WebFeatures> <Feature ID="00BFEA71-4EA5-48D4-A4AD-7EA5C011ABE5" /> </WebFeatures> </Configuration> </Configurations>
サイト定義の構成からサイトを作成したユーザーに対して特定のページが自動的に開くようにするには、ExecuteUrl 要素を Configuration 要素に追加します。この要素は、通常、作成した特定のカスタム アプリケーション ページを開くときに使用されます。ユーザーは、このページでカスタム サイトの種類に関連する所定のオプションを設定できます。この要素の詳細については、「ExecuteUrl 要素 (サイト)」を参照してください。カスタム アプリケーション ページの詳細については、「Application _layouts Page Type」を参照してください。
NavBar 子要素を NavBars 要素に追加して、カスタム サイト定義から作成された Web サイトのページのナビゲーション領域をカスタマイズします。一番簡単にこれを行う方法は、ほとんどの場合、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates の下位フォルダーにある組み込み Onet.xml ファイルの 1 つから NavBar 要素をコピーすることです (NavBars 要素は、サイト定義の任意の構成に基づいた Web サイトに適用されます)。このマークアップの詳細については、「NavBar 要素 (サイト)」を参照してください。
会議またはブログのサイトに表示される古いリストの種類の中には、フィーチャーが SharePoint Foundation に導入される前に作成されたものがあります。このようなリストの種類は、MPS および BLOG サイト定義の Onet.xml ファイルにある ListTemplate 要素で指定されます。カスタム サイト定義でこのリストの任意の種類が必要な場合は、ListTemplates 要素を Project 要素の子として追加し、その要素に、必要な ListTemplate 要素を MPS および BLOG Onet.xml ファイルからコピーします (カスタム ListTemplate 要素は絶対に追加しないでください。代わりに、前の手順で説明したように、カスタム リストをフィーチャーとして作成し、そのフィーチャーを、Configuration 要素の Lists 要素の子である List 要素で参照します)。リスト テンプレート マークアップの詳細については、「ListTemplate 要素 (サイト)」を参照してください。
Module 子要素を、Project 要素の下にあるメインの Modules 要素に直接追加して、カスタム タイプの Web サイトが作成されるたびに、そのサイトが、必要なファイルおよび "すべてのユーザー" の Web パーツで自動的に準備されるようにします。追加するすべての新しいモジュールが、Configuration 要素内にあるセカンダリ Modules 要素で参照される必要があります。構成内で参照されていない Module は使用されません。SharePoint Foundation に含まれる組み込みモジュールを登録するには、組み込み Onet.xml ファイルの 1 つから対応する Module 要素をコピーします。この組み込みファイルは、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates の下位フォルダーにあります。モジュール マークアップの詳細については、「Modules 要素 (サイト)」を参照してください。
定義から作成された Web サイトのページに特定のカスタム ヘッダー領域が設定されるようにするには、Project 要素の AlternateHeader 属性を設定します。詳細については、「Project 要素 (サイト)」を参照してください。
定義から作成された Web サイトのページにカスタム ECMAScript (JavaScript または Microsoft JScript コード) 関数 ([編集] メニューのカスタマイズなど) が設定されるようにするには、Project 要素の CustomJSUrl 属性を設定します。詳細については、「Project 要素 (サイト)」を参照してください。
Microsoft SharePoint Designer または他のデザイナー アプリケーションの特定の種類の機能 (バックアップ、サブサイトの作成など) が、定義から作成された Web サイトのページで動作しないようにするには、Project 要素の DisableWebDesignFeatures 属性を設定します。詳細については、「Project 要素 (サイト)」を参照してください。
定義から作成された Web サイトで使用するカスタム カスケード スタイル シート (CSS) スタイル定義を作成するには、%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS\LCID\STYLES に、一意の名前で .css ファイルを作成します (LCID は、言語/カルチャの数値 ID に置き換えてください。たとえば、英語の場合は 1033 になります)。この新しいファイルに、サイト定義の .aspx ページ内で指定された既定の .css ファイルの内容をコピーし、新しい .css ファイルのスタイルを追加または更新します。Project 要素の AlternateCSS 属性を使用して、新しい .css ファイルへのパスを指定します。次に例を示します。
AlternateCSS = "/_layouts/[%=System.Threading.Thread.CurrentThread.CurrentUICulture.LCID%]/styles/MyStyles.css">
サイトのページをカスタマイズするには
ソリューション エクスプローラーで、Default.aspx ファイルをダブルクリックします。このファイルは、必要に応じて編集できます。たとえば、このファイルがカスタム マスター ページを参照するように指定できます。サイト ページのカスタマイズの詳細については、「サイトおよびページ」を参照してください。
カスタム サイトの種類に基づいた Web サイトが作成されたとき、他の種類のページがそのサイトに自動的に表示されるようにするには、必要に応じて、追加の .aspx ページをプロジェクトに追加します。これを行うには、ソリューション エクスプローラーで [サイト定義] ノード (プロジェクト名ではありません) を右クリックし、custompage.aspx という名前のファイルを追加します。この方法で追加されたファイルはパッケージ マニフェストに登録され、ソリューションが展開されたときに適切な場所に展開されます。
カスタム マスター ページをソリューションの一部として追加する場合は、そのページがソリューション マニフェストによって正しい場所に展開されるように、適切な方法でプロジェクトに追加することが重要です。ソリューション エクスプローラー ([サイト定義] ノードではありません) でプロジェクト名を右クリックし、[追加] をポイントして、[SharePoint のマップされたフォルダー] を選択します。
[SharePoint のマップされたフォルダーの追加] ダイアログ ボックスで [TEMPLATE\GLOBAL] を選択し、[OK] をクリックします。
ソリューション エクスプローラーで、[GLOBAL] ノードを右クリックし、ファイル名拡張子が .master の新しいファイルを追加します。これにより、[GLOBAL] ノードに新しいファイルが作成され、ソリューション パッケージ マニフェストに登録されます。
新しいマスター ページを開いて、マークアップを追加します。カスタム マスター ページの詳細については、「マスター ページ」を参照してください。
サイト定義を展開およびテストするには
[ビルド] メニューで [ソリューションの展開] を選択します。これにより、すべてのファイルが適切な場所に自動的に展開され、Web アプリケーションがリサイクルされます。
ヒント 開発環境が、単一サーバーのインストールではなく、マルチサーバー ファームの場合、ソリューションは、Visual Studio によってサーバーの全体管理アプリケーションのファームのソリューション ギャラリーに追加されますが、展開はされません。ソリューションは自分でサーバーの全体管理に展開してください。
サイトを、カスタム サイト定義の構成のいずれかの構成に基づいた開発ファームに追加します。新しいサイトを作成する UI には、新しいサイトの種類が表示されるはずです。この例では、Research & Development という名前のカテゴリに Research Collaboration サイトおよび Research Document Workspace が表示されます。
カスタムサイト定義をローカライズする
カスタム サイト定義のローカライズ バージョンを作成する方法については、「[方法] カスタム サイト定義のローカライズしたバージョンを作成する」を参照してください。