SharePoint アドインの更新プロセス

SharePoint アドインに機能の追加、バグの修正、セキュリティ更新プログラムの適用を行ったときは、アドインを更新する必要があります。 アドインの更新プログラムは、アドインの最初のバージョンが展開されるのと同じ方法で SharePoint アドイン パッケージに展開されます。 SharePoint アドインの更新プロセスでは、なんらかの理由で更新が失敗した場合でも、アドインのデータは確実に保持されます。

重要

更新システムを使用してアドインの種類を変更することはできません。 たとえば、更新プログラムによって SharePoint ホスト型アドインからプロバイダー向けのホスト型アドインに変更することはできません。 種類を変更するには、古いアドインを新しいアドインに移行する必要があります。 特に、自動ホスト型アドインのプレビュー プログラムは提供が終了したため、自動ホスト型アドインをプロバイダー向けのホスト型アドインに更新できなくなったことに注意してください。 該当するアドインは、「自動ホスト型 SharePoint アドインをプロバイダー向けのホスト型アドインに変換する」で説明されているように変換する必要があります。

SharePoint アドインの更新プロセス

更新では、アドイン マニフェストで、元のバージョンに使用したのと同じプロダクト ID を使用します。 アドイン マニフェスト内のバージョン番号は、元のアドインまたは最新の更新プログラムのバージョン番号よりも大きい必要があります。

組織のアドイン カタログに更新プログラムをアップロードしてから 24 時間以内、および Office ストアにアップロードしてから 1 週間以内に、更新プログラムが利用可能なことを示すインジケーターが、アドインがインストールされているすべての Web サイトの [ サイト コンテンツ] ページで、アドインのリストの横に表示されます。 図 1 に示すように、ユーザーはリンクをクリックしてアドインを更新できます。 利用可能な更新プログラムはテナント管理 UI にも表示されます。

図 1. SharePoint アップグレード プロセス用のアドイン

アプリを更新するための UI の手順

ヒント

更新プログラムの開発時に、新しいバージョンをアップロードして SharePoint アドイン カタログをテストするたびに 24 時間待つ状況は望ましくないでしょう。 アドインをすぐに更新する方法については、「24 時間待たずにアドインを更新する」を参照してください。

既定では、SharePoint はインストール済みアドインに対する更新プログラムを 24 時間ごとに確認します。ファーム管理者は、次の SharePoint 管理シェル コマンドを使用してこれを別の値に設定できます。ここで、n で何時間ごとにチェックするかを指定します。

Set-SPInternalAppStateUpdateInterval -AppStateSyncHours n

この値を 0 に設定すると、組み込みのタイマー ジョブである [内部アドインの状態の更新] が実行されるたびにチェックが行われます。既定では 1 時間ごとに実行されます。 ファーム管理者はサーバーの全体管理を使用して、タイマー ジョブの間隔を変更したり、すぐに実行したりすることができます。

SharePoint は、ユーザーが SharePoint アドインに更新プログラムをインストールした場合、次のことを行います。 これらのイベントは必ずこの順序で発生するとは限らず、一部は並行して発生することがあります。 また、更新が失敗した場合は完全なロールバックが実行されます。

  • SharePoint は、アドインによって要求されたアクセス許可を承認するように求めるメッセージをユーザーに表示します。

  • SharePoint は、一時的にユーザーがアドインを利用できないようにします。

  • アドインに SharePoint ソリューション パッケージ (.wsp) が含まれている場合、ソリューション パッケージの内容が変更されると、SharePoint は次のことを行います。

    • アドイン Web のバックアップを作成します (ただし、SharePoint Online とオンプレミスの SharePoint 2016 以降では、SharePoint のリスト内の実際のデータは、更新によってリストのスキーマが変更される場合にのみバックアップされます)。

    • バックアップの更新をテストします。

    • テストが成功した場合は、元のアドイン Web を更新します。 アドイン パッケージ内の新しい .wsp ファイルは、アドイン Web の Feature や他の要素を更新するために使われます (Feature スキーマの更新する部分は SharePoint で拡張されています)。

  • SharePoint は、アドイン マニフェストに登録されている場合、UpgradedEventEndpoint Web サービスを実行します。

    注:

    アドインがプロバイダー ホスト型である場合は、アドインを構成する SharePoint 以外のすべてのコンポーネント用の更新ロジックを用意してください。 ほとんどの部分については、それらのコンポーネントをアドインのインストールとは別にインストールしたように、SharePoint アドイン自体の更新とは別にこれらのコンポーネントを更新します。 ただし、ユーザーが SharePoint アドインを更新するときにのみ生じる変更もあります。 このロジックは、UpgradedEventEndpoint Web サービス内やアドイン自体の "更新後の初回実行" ロジック内に配置できます。

  • SharePoint は、アドインとそのコンポーネントを再度利用できるようにします。

注:

アドイン Web 内のリストのスキーマが変更されている場合、そのリストはアドイン Web の他の部分と共にバックアップされます。 リスト内に多くのデータがある場合は、この処理に時間がかかることがあります。 更新プロセスが 1 時間で完了しない場合、プロセスは停止して更新がロールバックされます。

古いアドインから新しいアドインへの移行

シナリオによっては、元のアドインを更新するのではなく、完全に新しいアドインを作成して古いアドインを置き換える必要がある場合があります。 新しいアドインには古いアドインと同じフレンドリ名を付けることができますが、プロダクト ID はアドイン マニフェストで新しく指定する必要があります。新しいアドインは、Office ストアや SharePoint Web サイトの [アドインの追加] ページに、元のバージョンとは異なるアイテムとして表示されます。

注:

組織のアドイン カタログのアイテムは、製品 ID またはアドインの名前ではなく、アドイン パッケージのファイル名によって区別されます。 新しいアドインに、古いアドインと同じパッケージ ファイル名がある場合、アドイン カタログ内の古いアドインが置き換えられ、古いアドインは [アドインの追加] ページには表示されなくなります。 カタログにアップロードするときにアドイン パッケージでバージョン管理を有効にする場合、ファイルの古いバージョン (古いアプリ) はアイテムの履歴に引き続き表示されます。 古いアドイン パッケージをダウンロードしたり、そのパッケージに戻したりすることができますが、別のファイル名が付けられていない限り、古いアドインと新しいアドインの両方を、カタログまたは [アドインの追加] ページで別個のアイテムとして表示する方法はありません。

場合によっては、データを移行することが必要になります。 たとえば、新しいアドインで、古いアドインとは異なるスキーマの Microsoft Azure SQL データベースを使用している場合があります。 または、新しいアドインで異なるデータ格納メカニズムを使用している場合もあります (たとえば、SharePoint リストの代わりに外部データベース)。 このような場合は、データ移行のためのコードを用意する必要があります。

古いデータが、リモート イベント ハンドラーによってアクセスできる場所にある場合は、新しいアドインの InstalledEventEndpoint Web サービスに移行ロジックを実装できます。 または、新しいアドインから古いデータにアクセスできる場合は、ユーザーが新しいアドインを起動して最初に実行されるコード内に移行ロジックを配置できます。 古いデータがリモート ハンドラーからも新しいアドインからもアクセスできない場合は、古いアドインのアップグレードを作成して、データ エクスポート機能とその機能用の UI を追加できます。 ユーザーは、最初に古いアドインを更新してから、そのアドインを使って新しいアドインからアクセスできる場所にデータをエクスポートします。 新しいアドインにデータをインポートするための機能と UI を開発者が組み込みます。

原則として、古いアドインで使用されていた外部データ ソース、計算コンポーネント、またはその他の外部コンポーネントを新しいアドインで再利用できます。 ただし、SharePoint アドインをアンインストールすると、SharePoint インフラストラクチャは、インフラストラクチャがインストールしたすべてのものをアンインストールします。 したがって、SharePoint アドインでは一般的に、アドイン自身がインストールしたコンポーネントか、SharePoint インフラストラクチャでインストールされたのではない外部コンポーネントのみを使用することをお勧めします。

注:

コンポーネントをインストールする InstalledEventEndpoint または UpgradedEventEndpoint を実装する場合、同じコンポーネントをアンインストールする UninstallingEventEndpoint も実装することをお勧めします。 そうすることで、アドインは自己完結型で、クリーンにアンインストールされるべきという設計原則に準拠できます。 ただし、アドインのアンインストール後もユーザーにとって有益なデータは削除しないでください。 アドインによって作成された Web サイトは、アドイン Web 以外は、通常はデータと見なす必要があります。

古いアドインと新しいアドインのそれぞれにアドイン Web が含まれている場合は、新しいアドインのインストール時に新しいアドイン Web が作成されることを検討してください。 このため、SharePoint 機能スキーマでは更新に関連する XML マークアップを使用しないでください。 既存の SharePoint コンポーネントを更新していないため、このようなマークアップは機能しません。古いアドインを新しいアドインに置き換えます。

関連項目