次の方法で共有


Visual Studio の拡張機能の検索、インストール、管理

この記事では、Visual Studio で拡張機能パッケージを検索、インストール、管理する方法について説明します。 拡張機能 は、Visual Studio 内で実行され、新機能または改善された機能を提供するコード パッケージです。 拡張機能には、Visual Studio に機能を追加するコントロール、サンプル、テンプレート、ツール、その他のコンポーネント (たとえば、Live Share や GitHub Copilot できます。

Visual Studio 拡張機能の作成の詳細については、Visual Studio SDK を参照してください。 拡張機能の使用の詳細については、Visual Studio Marketplace の個々の拡張機能ページ参照してください。 拡張機能の検索の詳細については、「Visual Studio 2022 のお気に入りの拡張機能はどこにありますか?」というブログ投稿を参照してください。

手記

現在プレビュー段階にある機能拡張モデルの詳細については、 VisualStudio.Extensibility (プレビュー 3) を使用した拡張機能のビルド (プレビュー 3) に関するブログ記事を参照してください。

この記事では、Visual Studio で拡張機能パッケージを検索、インストール、管理する方法について説明します。 拡張機能 は、Visual Studio 内で実行され、新機能または改善された機能を提供するコード パッケージです。 拡張機能には、Visual Studio に機能を追加するコントロール、サンプル、テンプレート、ツール、その他のコンポーネント (たとえば、Live Share や GitHub Copilot できます。

Visual Studio 拡張機能の作成の詳細については、Visual Studio SDK を参照してください。 拡張機能の使用の詳細については、Visual Studio Marketplace の個々の拡張機能ページ参照してください。

拡張機能マネージャーを使用する

Visual Studio IDE では、拡張機能マネージャーは、Visual Studio 拡張機能の検索、インストール、管理に使用するツールです。 拡張機能マネージャーを開くには、拡張機能>[拡張機能の管理]を選択します。 または、検索ボックスに 拡張機能 を入力し、[ 拡張機能の管理] を選択します。

Visual Studio の拡張機能マネージャーのスクリーンショット。

Visual Studio の拡張機能マネージャーのスクリーンショット。

左側のウィンドウでは、Visual Studio Marketplace で使用できる拡張機能 (参照)、インストールされている拡張機能、および更新プログラムが利用可能な拡張機能によって分類されます。 [ローミング] タブには、Visual Studio の任意のコンピューターまたはインスタンスにインストールしたすべての Visual Studio 拡張機能が一覧表示されます。 お気に入りの拡張機能をより簡単に見つけられるように設計されています。

タブには、拡張機能をフィルター処理して並べ替えるボタンと、[ ツール>オプション ] 画面に移動する歯車ボタンがあります。

フィルター ボタンを使用して、カテゴリ別に拡張機能をフィルター処理できます。 インストールされている拡張機能のカテゴリには、有効無効互換性がありません。 17.14 以降では、 保留中でフィルター処理することもできます。このフィルターは、次回 Visual Studio を再起動するときに適用される更新プログラムを含む拡張機能によってフィルター処理されます。

[並べ替え] ボタンを使用して、拡張機能の名前、拡張機能の作成者、または日付で並べ替えます。

拡張機能の検索とインストール

Visual Studio Marketplace または Visual Studio の拡張機能マネージャーから拡張機能をインストールできます。

Visual Studio から拡張機能をインストールするには:

  1. [拡張機能]>[拡張機能の管理] を選択します。 インストールする拡張機能を見つけます。 (拡張機能の名前または名前の一部がわかっている場合は、検索ボックスで検索できます)。

  2. [インストール] を選択します。

ダウンロードが完了すると、拡張機能マネージャーの上部に "変更がスケジュールされています。 変更は、Microsoft Visual Studio が閉じられたときに開始されます。"

変更がスケジュールされていることを示す拡張機能マネージャーの通知を示すスクリーンショット。

ダウンロードが完了すると、[拡張機能の管理] ダイアログの下部に通知が表示されます。 Visual Studio のすべてのインスタンスが閉じられた後、拡張機能がインストールされます。

変更がスケジュールされていることを示す拡張機能マネージャーの通知を示すスクリーンショット。

依存関係を持つ拡張機能をインストールしようとすると、インストーラーによって既にインストールされているかどうかが判断されます。 インストールされていない場合、拡張機能マネージャーには、拡張機能をインストールする前にインストールする必要がある依存関係が一覧表示されます。

拡張機能マネージャーを使用せずに拡張機能をインストールする

.vsix ファイル パッケージ化された拡張機能は、Visual Studio Marketplace 以外の場所で使用できる場合があります。 拡張機能>拡張機能マネージャーの ダイアログボックスでは、これらのファイルを検出できませんが、ファイルをダブルクリックするか、ファイルを選択して 、.vsix ファイルをインストールし、Enterを選択します。 アクセス許可の問題が発生した場合は、管理者として Visual Studio を実行していることを確認してください。 その後、指示に従ってください。 拡張機能がインストールされたら、拡張機能マネージャーを使用して拡張機能を有効にしたり、無効にしたり、アンインストールすることができます。

手記

  • Visual Studio Marketplace には、VSIX ベースと MSI ベースの両方の拡張機能が含まれています。 拡張機能マネージャーでは、MSI ベースの拡張機能を有効または無効にできません。
  • MSI ベースの拡張機能に extension.vsixmanifest ファイルが含まれている場合、拡張機能は Extension Manager に表示されます。

拡張機能をアンインストールまたは無効にする

拡張機能の使用を停止する場合は、拡張機能を無効にするかアンインストールします。 拡張機能を無効にすると、インストールは維持されますが、アンロードされます。 拡張機能を見つけて、アンインストール を選ぶか、無効化します。 Visual Studio を再起動して、無効になっている拡張機能をアンロードします。

手記

VSIX ベースの拡張機能は無効にできますが、MSI 経由でインストールされる拡張機能は無効にできません。 MSI でインストールされた拡張機能は、アンインストールすることしかできません。

拡張機能の管理

このセクションでは、組織の拡張機能の管理、拡張機能の自動更新、無応答通知について説明します。

ユーザーごとの拡張機能と管理拡張機能

ほとんどの拡張機能はユーザーごとの拡張機能であり、%LocalAppData%\Microsoft\VisualStudio\<Visual Studio バージョン>\Extensions\ フォルダーにインストールされます。 いくつかの拡張機能は管理拡張機能であり、\Common7\IDE\Extensions\ <>Visual Studio インストール フォルダーにインストールされます。

エラーや悪意のあるコードを含む可能性のある拡張機能からシステムを保護するには、Visual Studio が通常のユーザーアクセス許可で実行されている場合にのみ、ユーザーごとの拡張機能の読み込みを制限できます。 これにより、Visual Studio が昇格されたアクセス許可で実行されると、ユーザーごとの拡張機能が無効になります。

ユーザーごとの拡張機能の読み込みを制限するには:

  1. 拡張機能のオプション ページを([ツール]>[オプション]>[環境]>[拡張機能])で開きます。

  2. [管理者として実行しているときにユーザーの拡張機能を読み込む] チェックボックスをオフにします。

  3. Visual Studio を再起動します。

拡張機能の自動更新

拡張機能は、Visual Studio Marketplace で新しいバージョンが利用可能になると自動的に更新されます。 拡張機能の新しいバージョンが検出され、バックグラウンドでインストールされます。 次回 Visual Studio を開くと、拡張機能の新しいバージョンが実行されます。

自動更新を無効にする場合は、すべての拡張機能または特定の拡張機能に対してのみ機能を無効にすることができます。

  • すべての拡張機能の自動更新を無効にするには、[拡張機能の ]> ダイアログの [表示設定] ボタンを選択します。 [オプション] ダイアログで、[環境>拡張機能] の「[拡張機能 を自動的に更新]」のチェックを外します。

  • 特定の拡張機能の自動更新を無効にするには、拡張機能マネージャーの右側にある拡張機能の詳細ウィンドウの [この拡張機能の を自動的に更新する] オプションをオフにします。

拡張機能は、Visual Studio Marketplace で新しいバージョンが利用可能になると自動的に更新されます。 拡張機能の新しいバージョンが検出され、バックグラウンドでインストールされます。 次回 Visual Studio を開くと、拡張機能の新しいバージョンが実行されます。

自動更新を無効にする場合は、すべての拡張機能または特定の拡張機能に対してのみ機能を無効にすることができます。

  • すべての拡張機能の自動更新を無効にするには、[拡張機能の ]> ダイアログの [表示設定] ボタンを選択します。 [オプション] ダイアログの [環境>Extensions] で、[更新プログラムを自動的にインストールする] をオフにします。

  • 特定の拡張機能の自動更新を無効にするには、拡張機能マネージャーの右側にある拡張機能の詳細ウィンドウの [この拡張機能の を自動的に更新する] オプションをオフにします。

このセクションの残りの部分では、Visual Studio 2022 17.14 以降で使用できる変更について説明します。 この変更により、拡張機能の更新の状況を確認したり、拡張機能マネージャーまたは Tools>Options で自動更新設定を管理したりできるようになります。

拡張機能マネージャー ウィンドウを開くと、更新プログラムが自動的にトリガーされます。 これにより、最新の機能を一貫して操作でき、更新プログラムを手動で開始する必要はありません。

拡張機能の更新プログラムを使用できる場合は、黄色の通知情報バーが表示されます。

使用可能な拡張機能の更新プログラムについて Visual Studio から通知される方法を示すスクリーンショット。

また、更新プログラムが適用されると通知が表示され、拡張機能が有効になるように Visual Studio を再起動するように通知されます。

拡張機能マネージャーの拡張機能のページで自動更新の設定を変更できます。

拡張機能が自動的に更新されるかどうかを構成する方法を示すスクリーンショット。

[保留中] カテゴリを使用すると、保留中の更新がある拡張機能のみを表示できます。

拡張機能の一覧をフィルター処理して、保留中の更新プログラムがある拡張機能のみを表示する方法を示すスクリーンショット。

自動更新の設定

[ ツール] > オプションで自動更新の設定を構成することもできます。

ツール > オプションで拡張機能の自動更新を構成する方法を示すスクリーンショット。

自動更新から除外された拡張機能の一覧には、自動的に更新されない拡張機能が表示されます。 これを使用して、開発ライフサイクルの重要なフェーズで使用している拡張機能の安定性と一貫性を確保できます。

クラッシュ通知と応答不能通知

Visual Studio は、前のセッション中に拡張機能がクラッシュに関与したと疑われる場合に通知します。 Visual Studio がクラッシュすると、例外スタックが格納されます。 次に Visual Studio が起動すると、スタックが調べられ、リーフから始まり、ベースに向かって動作します。 インストールされ有効になっている拡張機能の一部であるモジュールにフレームが属していると Visual Studio によって判断されると、通知が表示されます。

Visual Studio は、拡張機能によって UI が応答しない原因になっていると疑われる場合にも通知します。

これらの通知のいずれかが表示されたら、通知を無視するか、次のいずれかのアクションを実行できます。

  • [この拡張機能を無効にする] を選択します。 Visual Studio では拡張機能が無効になり、無効化操作を有効にするためにシステムを再起動する必要があるかどうかを知ることができます。 拡張機能の >拡張機能の管理 ダイアログで拡張機能を再度有効にすることができます。

  • [このメッセージをもう一度表示しない を選択します。

    • 前のセッションでのクラッシュに関する通知の場合、拡張機能に関連付けられたクラッシュが発生したときに、Visual Studio に通知が表示されなくなります。 Visual Studio では、応答不能を拡張機能に関連付けることができる場合、または他の拡張機能に関連付けることができるクラッシュまたは応答不能の通知が引き続き表示されます。
    • 通知が無応答に関係する場合、拡張機能が無応答に関連付けられている場合、IDE は通知を表示しなくなります。 Visual Studio では、拡張機能のクラッシュ関連の通知と、他の拡張機能のクラッシュ関連および応答不能関連の通知が引き続き表示されます。
  • 詳細情報を選択します。

  • 通知の最後にある X を選択して、通知を閉じます。 拡張機能がクラッシュに関連付けられている場合、または今後 UI が応答しない場合は、新しい通知が表示されます。

手記

UI が応答しない通知またはクラッシュ通知は、UI が応答しなかったとき、またはクラッシュが発生したときに、拡張機能のモジュールの 1 つがスタック上にあったことを意味します。 拡張機能が問題の原因であるとは限りません。 拡張機能が Visual Studio の一部であるコードを呼び出し、応答しない UI またはクラッシュが発生した可能性があります。 ただし、UIが応答しなかったり、クラッシュしたりする原因となった拡張機能が重要でない場合は、通知が役立つことがあります。 この場合、拡張機能を無効にすると、UI の応答が停止したり、将来的にクラッシュしたりするのを回避できます。

Marketplace の保護

拡張機能用の Visual Studio Marketplace には、悪意のある拡張機能からユーザーを保護するためのメカニズムがいくつか採用されています。

  • マルウェア スキャン: Marketplace では、公開されている各拡張機能パッケージに対してマルウェア スキャンが実行され、その安全性が確保されます。 複数のウイルス対策エンジンを使用するスキャンは、新しい拡張機能ごとに、および拡張機能の更新ごとに実行されます。 スキャンがすべてクリアされるまで、拡張機能は一般に使用するために Marketplace に公開されません。

  • 検証済みの発行元: パブリッシャーは、ドメインの所有権を証明することで、ID を確認 (青いチェック マーク) できます。 これは、発行元が Marketplace へのドメイン名の所有権を証明していることを示しています。 また、Marketplace が少なくとも 6 か月間、ドメインの存在と Marketplace のパブリッシャーの良好な地位の両方を検証していることも示しています。

  • 異常な使用状況の監視: Marketplace は、拡張機能のダウンロードと使用パターンを監視して、異常な動作を検出します。

  • 名前のしゃがみ: Marketplace では、拡張機能の作成者が、Microsoft や RedHat などの公式の発行元や、GitHub Copilot などの一般的な拡張機能の名前を盗むのを阻止します。

  • ブロック リスト: 悪意のある拡張機能が報告および検証された場合、または拡張機能の依存関係に脆弱性が見つかった場合、拡張機能は Marketplace から削除されます。

  • 拡張機能署名の検証: Visual Studio Marketplace は、公開時にすべての拡張機能に署名します。 拡張機能をインストールすると、Visual Studio によってこの署名がチェックされ、拡張機能パッケージの整合性とソースが確認されます。

  • シークレットスキャン: Marketplace は、新しく公開されたすべての拡張機能で、API キーや資格情報 (Azure DevOps PAT トークンなど) などのシークレットを自動的にスキャンします。 シークレットが検出されると、潜在的なセキュリティ リスクを防ぐために発行がブロックされます。

これらの対策については、 Visual Studio Marketplace のセキュリティと信頼に関するブログ投稿を参照してください。

サンプル

オンライン サンプルをインストールすると、ソリューションは次の 2 つの場所に格納されます。

  • 作業コピーは、プロジェクトの作成時に指定した場所に格納されます。

  • 別のマスター コピーがコンピューターに保存されます。

[拡張機能>管理拡張機能] ダイアログを使用して、次のサンプル関連のタスクを実行できます。

  • インストールしたサンプルのマスター コピーを一覧表示します。

  • サンプルのマスター コピーを無効またはアンインストールします。

  • サンプル パックをインストールします。これは、テクノロジまたは機能に関連するサンプルのコレクションです。

  • 個々のオンライン サンプルをインストールします。

  • インストールされているサンプルに対してソース コードの変更が発行されたときに更新通知を表示します。

  • 更新通知がある場合は、インストールされているサンプルのマスター コピーを更新します。