アップグレードにオブジェクト モデルを使用する

Microsoft.SharePoint.Upgrade 名前空間のオブジェクト モデルは、Windows SharePoint Services プラットフォーム上に構築されているアプリケーションを、次のバージョンまたはビルドの SharePoint にアップグレードするときの、アップグレード操作を定義する手段を提供します。次のバージョンまたはビルドの Windows SharePoint Services にアップグレードするためにアプリケーションで必要な方法と整合するように、さまざまなタスクを実行するための操作の順序を定義します。

アップグレード クラス

SPAction クラスは、アップグレードの具体的なニーズに合わせて設計するカスタム クラスを派生する基本クラスです。SPAction を継承するクラスを作成できます。または、データベースをアップグレードするための操作を定義する特定の場合には、SPDatabaseAction クラスを使用します。Upgrade メソッドを無効にして、アップグレードのロジックを実行します。

SPSequence クラスは、Microsoft.SharePoint.Upgrade 名前空間の他のシーケンス クラスに対する最終的な基本クラスです。このようなシーケンス クラスとしては、SPActionSequence、およびそから派生する SPDatabaseSequenceSPIisWebSiteSequenceSPPersistedObjectSequenceSPSiteSequence などがあります。また、このオブジェクト モデルでは、アップグレード プロパティや移行インストールにアクセスするための SPManager クラスや SPMigrator クラスなど、リソースも提供されます。Windows SharePoint Services に固有の例外をトラップするには、SPUpgradeException クラスを使用します。

よい方法は、Microsoft.SharePoint.Upgrade 名前空間の操作クラスやシーケンス クラスから派生するスーパー クラスを作成し、そのスーパー クラスから派生する他のクラスを作成して、特定のアップグレード操作を実行するというものです。たとえば、カスタム アップグレード アプリケーションでは、サーバー ファームをアップグレードする操作や、インターネット インフォメーション サービス (IIS) Web サイト、データベース、SharePoint サイト コレクション、Web アプリケーション、サーバーなどをアップグレードする操作が、必要になる場合があります。

アップグレード シーケンス クラスには、読み込んで実行するアップグレード操作の基本タイプを指定する属性があります。各アップグレード操作には、次に示すようなバージョン属性タグがあり、アップグレード対象リソースの現在のバージョンと、アップグレード操作の対象バージョンを比較することで、特定のアップグレード操作を実行する必要があるかどうかを識別するのに役立ちます。バージョン属性タグは、個別のアップグレード操作の並べ替えでも使用されます。

[TargetSchemaVersion("12.0.1.0")]
[ActionBaseType(typeof(MyWebAppAction))]
[TargetUpgradableObject(typeof(SPWebApplication))]

シーケンスの TargetSchemaVersion 属性は、操作モジュールの最新の更新操作の TargetSchemaVersion 属性と一致する必要があります。

構成ファイル

Microsoft.SharePoint.Upgrade 名前空間のクラスから派生するクラスを作成した後は、Local_Drive:\Program Files\Common Files\Microsoft Shared\web server extensions\12\Config\Upgrade フォルダに構成ファイルを作成することで、アセンブリを登録できます。構成ファイルは、すべてのプラグインの DLL とクラス名を示す XML ファイルです。これらのファイルは、正しいクラスをインスタンス化し、リフレクションを使用してそれを実行するために、実行時に使用されます。

構成ファイルは次のような形式です。

<?xml version='1.0'?>
<Config xmlns="urn:Microsoft.SharePoint.Upgrade">
  <Assembly Name="Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=94de0004b6e3fcc5, Custom=null">     <Order>3</Order>
  </Assembly>
</Config>

Assembly タグの Name 属性は、特定のアップグレード可能リソースに対するアップグレード シーケンスを含むアセンブリの名前を示します。Order ノードは、同じ種類の別のリソースのアップグレード シーケンスについて、このシーケンスでの順序を示します。たとえば、Windows SharePoint Services のアップグレード シーケンスは順序が 1 で、他のアップグレード シーケンスの前に実行されます。