開発中のアドインをアンインストールする
不完全に削除されたアドインは、開発中に、カスタム リボン ボタンやレジストリ エントリなどの成果物をコンピューターに残す可能性があります。 この記事では、これらの "ゴースト アドイン" と呼びます。
Outlook アドインは、アドインの開発に使用したのと同じ ID で Outlook にサインインするときに、これらの成果物を他のコンピューターに追加する場合もあります。
重要
Outlook にサインインすると、Exchange からダウンロードされ、ID に関連付けられているすべての Outlook アドイン マニフェスト ( 同じ ID を使用して別のコンピューターで開発しているアドインを含む) がダウンロードされます。 たとえば、マニフェストで定義されているカスタム リボン ボタンは、アドインに表示されます。
マニフェスト内の URL が非 localhost サーバーを指していて、そのサーバーが実行されていて、開発以外のコンピューターからアクセスできる場合、Outlook はアドインのファイルをローカル ファイル システムにキャッシュし、アドインは通常はコンピューター上で正常に実行されます。 それ以外の場合、アドインは機能しませんが、カスタム リボン ボタンなどの表示される部分が表示されます。 マニフェストでラベルが定義されています。 アドインのボタン アイコンは、開発以外のコンピューターでローカルにキャッシュされ、キャッシュがクリアされなかった場合にも表示されます。 アイコン ファイルは Exchange と共に保存されないため、開発以外のコンピューター (またはキャッシュがクリアされている) にキャッシュされなかった場合、ボタンには既定のアイコンが表示されます。
アドインの登録が Exchange から削除されるまで、アドインは引き続き表示されます。 Exchange での登録の削除については、「ゴースト アドイン の削除」を参照してください。
この記事では、これらの問題の可能性を最小限に抑え、問題が発生した場合に解決するためのガイダンスについて説明します。
問題を防ぐ
アドインがサイドロードされると、いくつかのことが発生します。
- 通常、localhost 上の Web サーバーは、アドインのファイル (HTML、CSS、JavaScript ファイルなど) の提供を開始します。
- これらの同じファイルが開発用コンピューターにキャッシュされます。
- アドインは開発用コンピューターに登録されます。 登録は、Windows コンピューターのレジストリ エントリ、または Mac 上のファイル システムに保存された特定のファイルで行われます。
- サイドローディング アドイン用のほとんどのツールでは、アドインの対象となる Office アプリケーションが自動的に開きます。 また、ツールは、アドインのマニフェストで定義されているカスタム リボン ボタンまたはコンテキスト メニュー項目をアプリケーションに設定します。
- Outlook アドインの場合、アドインのマニフェストは Exchange サービスに登録されます。
ツールのアンインストール機能を使用する
ゴースト アドインを防ぐには、セッションの開始に使用したツールによって提供されるアンインストール (unacquire とも呼ばれます) オプションを使用して、すべてのテスト、デバッグ、サイドローディング セッションを終了します。 これにより、この記事で前述したように、サイドローディングの効果が反転します。
次の一覧では、各ツールについてアンインストール方法を示していますが、手順や構文については詳しく説明していません。 リンクを使用して、完全な手順を確認してください。
注:
これらのツールの一部では、自動的に開かれた Office アプリケーションが閉じられません。 その場合は、セッションを終了した直後にアプリケーションを手動で閉じます。
-
Office アドイン用 Yeoman ジェネレーター (Yo Office):
npm start
でセッションを開始したのと同じコマンド ラインで、npm stop
スクリプトを使用します。 詳細については、「 概要 と クイック スタート 」セクションおよび 「サイドロードされたアドインを削除する」の各記事を参照してください。 - Teams Toolkit for Visual Studio Code: Visual Studio Code で [実行 | ストップ デバッグ ] を選択します。 詳細については、「Outlook アドイン以外のアドインにも適用される Outlook アドイン プロジェクトを作成 する」の最後の手順を参照してください。
- Visual Studio Code のOffice アドイン Development Kit: Office アドイン Development Kit拡張機能が開いている状態で、[Office アドインのプレビューの停止] を選択します。 詳細については、「アドインの テストを停止する」を参照してください。
-
office-addin-debugging ツール:
office-addin-debugging start
でセッションを開始したのと同じコマンド ラインで、office-addin-debugging stop
コマンドを使用します。 詳細については、「 Office-Addin-Debugging ツールを使用したサイドロード」を参照してください。 -
Teams Toolkit CLI:
teamsapp install
でセッションを開始したのと同じコマンド ラインで、teamsapp uninstall
コマンドを使用します。 詳細については、「 Teams Toolkit CLI を使用したサイドロード」を参照してください。 - Visual Studio: メニューで [デバッグ | デバッグの停止 ] を選択するか、 Shift+F5 キーを押すか、デバッグ バーの四角形の赤い "停止" ボタンをクリックします。 または、Office アプリケーションを閉じるとセッションも停止し、アドインがアンインストールされます。 詳細については、「最初に Visual Studio デバッガーを見る」を参照してください。
ゴースト アドインを削除する
ゴースト アドインを削除するには、最後にサイドロードされたときに作成された成果物を削除し、ローカル登録を削除し、Outlook アドインの場合は Exchange での登録を削除する必要があります。
アドインを削除するプロセスは、アドインが Outlook 用か他の Office アプリケーション用かによって異なります。
注:
Microsoft 365 の統合マニフェストでは、Outlook と 1 つ以上の他の Office アプリケーションをサポートするようにアドインを構成できます。つまり、マニフェストには "extensions.requirements.scopes" 配列のメンバーが複数あり、メンバーの 1 つが "mail" (または "extensions.requirements.scopes" プロパティが存在しません) です。 この方法で構成されたアドインを Outlook アドインとして扱います。
ゴースト アドインが Outlook アドインでない場合は、「アドイン成果物を削除する」セクションに進 んでください。
ゴースト Outlook アドインの Exchange 登録を削除する
アドインをサイドロードしたときに使用したのと同じ ID で Outlook にログインします。
管理者として PowerShell を開きます。
次のコマンドを実行します。 すべての確認プロンプトに対して "はい" と回答します。
Install-Module -Name ExchangeOnlineManagement -RequiredVersion 3.4.0 Set-ExecutionPolicy RemoteSigned Connect-ExchangeOnline
注:
Connect-ExchangeOnline
コマンドがエラー "ActiveX control '8856f961-340a-11d0-a96b-00c04fd705a2' を返す場合は、現在のスレッドがシングル スレッド アパートメントにないためインスタンス化できません。コマンドを 2 回目に実行するだけです。 これはよく知られているバグです。次のコマンドを実行します。 すべての確認プロンプトに対して "はい" と回答します。
Get-App | Format-Table -Auto DisplayName,AppId
Outlook にインストールされているアドインの一覧が表示されます。 これには、インストールした組み込みの Microsoft アドインとアドインが含まれます。 ゴースト Outlook アドインも一覧表示されます。
一覧でゴースト アドインを見つけます。 Yo Office または別の Microsoft ツールを使用して作成された場合は、"Contoso 作業ウィンドウ アドイン" という名前が付いている可能性があります。
アドインのアプリ ID (GUID) をコピーします。 後の手順で必要になります。
コマンド
Remove-App -Identity {{The GUID OF YOUR ADD-IN HERE}}
を実行します (例:Remove-App -Identity 26ead0cb-10dd-4ba2-86c6-4db111876652
)。 このコマンドは、Exchange からアドインを削除します。警告
登録を削除するには、すべての Exchange サーバーに伝達する必要があります。 次の手順に進む前に、少なくとも 3 時間待ちます。
「 アドイン成果物を削除する」セクションに進みます。
アドイン成果物を削除する
重要
アドインをサイドロードしたすべてのデバイスで、この手順を実行します。
- すべての Office アプリケーションからログアウトし、Outlook を含むすべてのアプリケーションを閉じます。
- Office キャッシュをクリアします。 ゴースト アドインで Outlook がサポートされている場合は、[Outlook でキャッシュを手動でクリアする] を使用します。
- 「 ローカル登録を削除する」セクションに進みます。
ローカル登録を削除する
重要
アドインをサイドロードしたすべてのコンピューターで、この手順を実行します。
ゴースト アドインのローカル登録を削除します。 このプロセスは、オペレーティング システムによって異なります。
レジストリ エディターを開きます。
[Computer\HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\WEF\Developer] に移動します。 このキーは、現在サイドロードされているか、以前にサイドロードされ、完全にアンインストールされなかったアドインの一覧を示します。 各エントリの データ 値は、アドインのマニフェストへのパスです。 [名前] の値は、アドインの作成とサイドロードに使用されたツールのバージョンによって異なります。 Visual Studio が使用された場合、通常、名前はマニフェストへのパスでもあります。 その他のツールの場合、通常、名前はアドインの ID です。 Office アプリケーションが起動すると、このキー (Office アプリケーションをサポートする) に一覧表示されているすべてのアドインが再読み込みされます。 キャッシュからアドインの成果物が削除された場合、またはマニフェストがパスに存在しなくなった場合、またはアドインのファイルがサーバーによって処理されていない場合、再読み込みには実用的または識別可能な効果がない可能性があります。
ゴースト アドインのエントリを見つけて削除します。 Outlook アドインの場合は、 Exchange 登録を削除する ID があります。 [ データ ] 列のパスを使用してマニフェストを見つけ、エントリが参照するアドインを識別し、マニフェストから ID を読み取ることもできます。 [データ] 列に一覧表示されているマニフェストが指定したパスに存在しなくなった場合は、それらのマニフェストのエントリを削除します。
... を展開します。レジストリ ツリーの開発者ノード。 名前が同じゴースト アドインの ID であるサブキーを探します。 存在する場合は、削除します。
Computer\HKEY_USERS\{SID}\Software\Microsoft\Office\16.0\WEF\Developerに移動し、{SID} はアドインをサイドロードしたときにサインインしたユーザーの SID に移動し、前の 2 つの手順を繰り返します。
[Computer\HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\CustomUIValidationCache] に移動します。 [ 名前 ] 列で、アドインの ID (GUID) で始まるすべてのエントリを見つけて削除します。 次に 、[Computer\HKEY_USERS\{SID}\Software\Microsoft\Office\16.0\Common\CustomUIValidationCache] に移動します。 ここで、{SID} はアドインをサイドロードしたときにサインインしたユーザーの SID であり、プロセスを繰り返します。
- Outlook アドインを削除する場合は、「Outlook アドイン の削除をテストする」セクションに進んでください。
Outlook アドインの削除をテストする
アドインの作成時に使用したのと同じ ID で Outlook を開きます。 数分後にアドインからの成果物 (カスタム リボン ボタンなど) が再び表示された場合、またはアドインからのイベント ハンドラーがアクティブなように見える場合、Exchange からのアドインの登録の削除はすべての Exchange サーバーに反映されません。 少なくとも 3 時間待ってから、「 アドイン成果物を削除 する」セクションの手順を繰り返し、成果物を観察したコンピューターの ローカル登録を削除 します。
関連項目
Office Add-ins