Visual Studio のネットワーク インストールを作成して維持する

エンタープライズ管理者は、組織内のクライアント コンピューターにデプロイできる Visual Studio ファイルを含むプライベート インストール キャッシュ (「レイアウト」とも呼ばれます) を作成したいと考えている場合があります。

レイアウトの作成は、次のような場合に役立ちます。

  • ユーザーのアクセス許可が制限されている
  • クライアント マシンは、インターネットへのアクセスが制限されている
  • 組織は、特定のバージョンの開発者ツールセットを標準化したいと考えている

Visual Studio は、管理者がレイアウトを作成および管理し、内部ネットワーク共有に格納し、必要に応じて組織のイントラネットで使用できるように設計されています。 レイアウトは、クライアントの初期インストールと以降の更新プログラムの両方に必要なすべての Visual Studio ファイルのソースの場所として機能します。

このページの情報は、次の 3 つのメイン セクションにグループ化されています。

  • レイアウトを作成する: 正しい製品コンテンツを使用してレイアウトを作成し、既定の設定を構成してネットワーク ファイル共有に格納し、イントラネットで使用できるようにする方法について説明します。
  • レイアウトを維持する: レイアウトの製品バージョンを最適に更新する方法、またはレイアウトの製品コンテンツ、チャネル設定、インストーラーのバージョン、フォルダー サイズを変更する方法に関する情報。
  • ヘルプとサポート: ヘルプ情報を探す場所

レイアウトを作成する

ネットワーク ファイル共有の保存場所を準備する

まず、ダウンロードした Visual Studio パッケージを格納する場所を決定する必要があります。 複数のエディションの Visual Studio を企業内で利用している場合 (たとえば、Visual Studio 2022 Professional と Visual Studio 2022 Enterprise)、エディションごとに個別のレイアウトを作成する必要があります。 エディションごとに個別のレイアウトを作成すると、特にレイアウトの更新もディスク容量を消費することを考慮する場合、多くのディスク容量が消費される可能性があります。

レイアウト パスは 80 文字未満である必要があります。一部の組織ではシンボリック リンクをうまく使用して 80 文字の制限を回避しています。

Visual Studio ブートストラップをダウンロードしてレイアウトを作成する

必要な Visual Studio エディションに適したブートストラップをダウンロードして、レイアウトのリポジトリとして使用するディレクトリにコピーします。 レイアウトを作成したら、それを使用して、任意のクライアント コンピューターに Visual Studio をインストールできます。 ブートストラップは、他のレイアウト操作の作成、更新、および実行に使用する実行可能ファイルです。 この手順を完了するには、インターネットの接続と管理者権限が必要です。

次のブートストラップでは、いつ実行しても、常に最新で最もセキュアなバージョンの Visual Studio 2019 がインストールされます。 または、Visual Studio 2019 の特定のバージョンをインストールまたは更新する場合は、各サービス リリースの固定バージョン ブートストラップへのリンクが記載されている Visual Studio 2019 リリースのページにアクセスし、任意のものをダウンロードします。 レイアウトのソースの場所として使用するディレクトリにコピーします。

Edition ブートストラップ
Visual Studio 2019 Enterprise バージョン 16.11 vs_enterprise.exe
Visual Studio 2019 Professional バージョン 16.11 vs_professional.exe
Visual Studio 2019 Build Tools バージョン 16.11 vs_buildtools.exe

その他にサポートされているブートストラップして、vs_teamexplorer.exevs_testagent.exevs_testcontroller.exe があります。

次のブートストラップでは、いつ実行しても、常に最新で最もセキュアなバージョンの Visual Studio 2022 が最新チャネル上にインストールされます。 または、Visual Studio 2022 の特定のバージョンまたは特定のチャネルのレイアウトを作成または更新する場合は、Visual Studio 2022 リリース履歴から希望のサービス リリースの evergreen および固定バージョン ブートストラップをダウンロードします。 レイアウトのソースの場所として使用するディレクトリにコピーします。

Edition ブートストラップ
Visual Studio 2022 Enterprise vs_enterprise.exe
Visual Studio 2022 Professional vs_professional.exe
Visual Studio 2022 Community vs_community.exe
Visual Studio 2022 Build Tools vs_buildtools.exe

ヒント

前にブートストラップ ファイルをダウンロードしてあり、そのバージョンを確認したい場合は、次のようにします。 Windows でエクスプローラーを開き、ブートストラップ ファイルを右クリックし、 [プロパティ] を選択して、 [詳細] タブを選択し、 [製品バージョン] の値を表示します。 この値に対応する Visual Studio のリリースを調べるには、「Visual Studio 2019 リリース」の下部の表を参照してください。

ヒント

前にブートストラップ ファイルをダウンロードしてあり、インストールされるバージョンを確認したい場合は、次のようにします。 Windows でエクスプローラーを開き、ブートストラップ ファイルを右クリックし、[プロパティ] を選択して、[詳細] タブを選択し、ます。[製品バージョン] フィールドは、ブートストラップによってインストールされるチャネルとバージョンを表しています。 バージョン番号は、常に「指定されている最新のサービス バージョン」 として読み取られるため、チャネルは明示的に指定されていない限り、最新になります。 そのため、製品バージョンが LTSC 17.0 のブートストラップでは、17.0 LTSC チャネルで利用可能な最新の 17.0.x サービス リリースがインストールされます。 製品バージョンが Visual Studio 2022 と表示されるブートストラップの場合は、最新チャネルの Visual Studio 2022 の最新サービス バージョンがインストールされます。

Visual Studio パッケージをダウンロードする

このステップを実行するにはインターネット接続が必要です。

管理者特権のコマンド プロンプトを開き、ブートストラップをダウンロードしたディレクトリに移動し、 コマンドライン パラメーターを使用した Visual Studio のインストールに関するページで定義されているようにブートストラップのパラメーターを使用して、ネットワーク レイアウトを作成して維持します。 以下の例は、初期レイアウトを作成する一般的な方法を示しています。 その他の例については、「Visual Studio のインストールに使用するコマンド ライン パラメーターの例」のページを参照してください。

1 つの言語ロケールの完全な初期レイアウトには、Visual Studio Community の場合は約 40 GB、Visual Studio Enterprise の場合は約 50 GB のディスク領域が必要です。 その他の言語ロケールには、それぞれ約 0.5 GB が必要になります。

推奨される方法は、すべてのワークロードと適切な言語で Visual Studio の初期レイアウトを作成し、ネットワーク サーバー上のレイアウト ディレクトリにパッケージを格納することです。 そうすると、クライアントのインストールで、Visual Studio 製品オファリング全体にアクセスでき、任意のサブセットをインストールできます。 Visual Studio の完全なレイアウトを作成するには、ネットワーク レイアウトをホストする予定のディレクトリから次のコマンドを実行します。

vs_enterprise.exe --layout c:\VSLayout

レイアウトが正しいチャネルに基づいていることを保証する

ネットワーク レイアウトが正しい チャネルからのものであることを確認することが重要です。これは、管理者によって更新される条件の 1 つであるためで、組織全体に展開されている場合は、どのクライアントインスタンスを更新する必要があるかを特定するために使用します。 たとえば、レイアウトが VisualStudio.17.Release.LTSC.17.0 チャネルからのもので、クライアントが Microsoft ホスト サーバーから更新プログラムを受信するように構成されている場合、17.0 LTSC チャネルで利用できるようになったすべてのセキュリティ更新プログラムは、そのレイアウトからインストールまたは更新されたクライアントで使用できるようになります。

前述のブートストラップは、最新チャネルに基づいています。 LTSC チャネルのいずれかに基づいてレイアウトを作成するには、Visual Studio 2022 リリース履歴ページから適切なチャネルのブートストラップを取得し、それをレイアウト フォルダーにコピーして、レイアウトを作成または更新するために使用します。

レイアウトの内容を構成する

ネットワーク レイアウトはいくつかの方法でカスタマイズできます。 言語ロケールワークロード、コンポーネント、推奨の依存関係または任意の依存関係からなる特定のセットのみを含む部分的レイアウトを作成できます。 部分的なレイアウトは、クライアント ワークステーションに展開することがわかっている場合に便利です。 レイアウトをカスタマイズするための一般的なコマンド ライン パラメーターには次のようなものがあります。

  • --addワークロードまたはコンポーネント ID を指定します。
    --add を使用すると、--add で指定されたワークロードとコンポーネントだけがダウンロードされます。 --add を使用しない場合、すべてのワークロードとコンポーネントがダウンロードされます。
  • --includeRecommended指定したワークロード ID のすべての推奨コンポーネントを含めます。
  • --includeOptional指定したワークロード ID のすべての任意コンポーネントを含めます。
  • --config*.vsconfigファイルに使用して、レイアウトに含める、またはレイアウトで参照するワークロード、コンポーネント、または拡張機能を指定します。 構成ファイルの完全なパスを指定してください。
  • --lang言語ロケールを指定します。

次に、カスタム ネットワーク レイアウトの作成方法の例をいくつか紹介します。

  • すべてのワークロードに必要なコンポーネントを含むレイアウトを 1 つの言語でのみ作成するには、次のコマンドを実行します。

    vs_enterprise.exe --layout C:\VSLayout --lang en-US
    
  • すべてのワークロードに必要なコンポーネントを含むレイアウトを複数の言語で作成するには、次のコマンドを実行します。

    vs_enterprise.exe --layout C:\VSLayout --lang en-US de-DE ja-JP
    
  • 1 つのワークロードとそのワークロードに必要なコンポーネントと推奨コンポーネントをすべて含むレイアウトをすべての言語で作成するには、次のコマンドを実行します。

    vs_enterprise.exe --layout C:\VSLayout --add Microsoft.VisualStudio.Workload.Azure --includeRecommended
    
  • 2 つのワークロードと 1 つの任意のコンポーネントを含むレイアウトを 3 つの言語で作成するには、次のコマンドを実行します。

    vs_enterprise.exe --layout C:\VSLayout --add Microsoft.VisualStudio.Workload.Azure --add Microsoft.VisualStudio.Workload.ManagedDesktop --add Microsoft.VisualStudio.Component.Git --lang en-US de-DE ja-JP
    

構成ファイルを使用して、レイアウトの内容を初期化する

--configパラメーターを使用して、*.vsconfigファイルを渡すことができます。 構成ファイルの完全なパスを指定してください。 レイアウト作成時に*.vsconfigファイルを使用すると、ネットワーク レイアウトの内容が構成ファイルで指定されたものにカスタマイズされ、制限されます。 構成ファイルがレイアウト ディレクトリにコピーされ、名前がlayout.vsconfigに変更されます。

ファイル*.vsconfig で指定された拡張子は、レイアウトに直接コピーされません。 代わりに、レイアウトのresponse.jsonファイルには、クライアントの拡張機能のインストール場所を定義する、新しく作成されたlayout.vsconfigファイルへの参照が含まれています。 デジタル署名されていない拡張機能をインストールする場合は、response.json"allowUnsignedExtensions": trueを追加するように編集します。 response.jsonコンテンツのの例を参照してください。

vs_enterprise.exe --layout "C:\VSLayout" --config "C:\myconfig.vsconfig" 

ネットワーク共有にレイアウトをコピーする

クライアント コンピューターからアクセスできるようにネットワーク共有でレイアウトをホストする必要があります。 ローカル コンピューターにレイアウトを作成した場合は、ネットワーク ファイルの場所にコピーする必要があります。 xcopy の使用例を次に示します。 必要であれば、robocopy を使用することもできます。 例:

xcopy /e c:\VSLayout \\server\share\layoutdirectory

このレイアウトの初期クライアントのインストールの既定値を構成する

response.json というファイルがレイアウトのルート フォルダーに作成されます。 このカスタマイズ可能なファイルから、クライアントが最初にレイアウトからインストールされるときにクライアントで構成される初期の既定の設定が提供されます。 一般的な構成オプションには、次の構成機能が含まれます。

  • クライアントに既定でインストールする必要があるワークロード、コンポーネント、または言語
  • 推奨されるコンポーネントもインストールする必要がある場合
  • クライアントが*.vsconfigファイルのインストールを尊重する必要がある場合
  • クライアントが更新を受け取る場所
  • 更新中にサポート対象外のコンポーネントを削除する必要がある場合
  • 署名されていない拡張機能が静かに&プログラムで読み込める場合

詳細については、「応答ファイルで Visual Studio インストールを自動化する」ページを参照してください。

イントラネット サイトを介してレイアウトにアクセスできるようにする

2023 年 6 月以降、内部イントラネット サイトでレイアウトを使用できるようになります。これにより、Web サーバーのファイル キャッシュと geo レプリケーションのパフォーマンス機能を利用できます。 この新機能を使用するには、最新の Visual Studio ブートストラップと最新の Visual Studio インストーラーを使用する必要があります。 IT 管理者は、このイントラネット Web ホスト機能を利用するために、次の操作を行う必要があります。

  1. まず、ネットワーク レイアウトを作成して維持し、ビットが確実にネットワーク共有上に存在し、定期的に更新されるようにします。 また、クライアントがイントラネット レイアウトの場所から更新プログラムを取得する場合は、レイアウトの response.json の channelUri 値を構成することを忘れないでください。

  2. 次に、管理者は内部 Web サイトを準備し、Web サイトのソースをレイアウトのネットワーク ファイルの場所にバインドする必要があります。 また、Web サーバーが次の MIME タイプを尊重していることを確認する必要があります。

    ファイル拡張子 [MIME の種類]
    .cab application/vnd.ms-cab-compressed
    .exe application/octet-stream
    .json application/json
    .msi application/octet-stream
    .msu application/octet-stream
    .nupkg application/octet-stream
    .opc application/octet-stream
    .ps1 application/postscript
    .vsix application/octet-stream
    .xml text/xml
    .zip application/x-zip-compressed
  3. 最後に、このレイアウトをクライアントに展開するには、最初のインストールを実行するために、クライアントで PowerShell スクリプトを実行します。 Visual Studio が Web ホスト レイアウトからクライアントに正常にインストールされたら、Web ホスト レイアウトのクライアント更新プログラムを標準のメソッドで更新できます。

レイアウトが最新のインストーラーを使用していることを確認する

Note

2023 年 6 月現在、最新のインストーラーは、Visual Studio 2017、Visual Studio 2019、Visual Studio 2022 のすべてのサポート対象バージョンに対するすべての更新プログラムに既定で付属しています。 そのため、これらの製品バージョンのいずれかを使用している場合は、明示的に何かをする必要はなく、最新の機能とバグ修正を含む最新バージョンのインストーラーを入手できます。

2023 年 6 月より前に出荷されたバージョンの Visual Studio を使用している場合は、常に最新の Visual Studio インストーラーをレイアウトで使用し、クライアントに配布することをお勧めします。 たとえば、Visual Studio 2019 のレイアウトで Visual Studio 2022 インストーラーを配布する場合、そのレイアウトに基づく Visual Studio 2019 クライアントでは、更新プログラムのソースの場所を変更したり、サポート対象外のコンポーネントを簡単に削除したりできます。 詳細については、以下のセクションで説明します

最新のインストーラーが使われていることをプログラムで確認する機能は、最初に出荷された Visual Studio 2022 の後に作成された Visual Studio 2019 ブートストラップにのみ使用できます。 そのため、次の例の vs_enterprise.exe は、2021 年 11 月 10 日より後に出荷されたバージョンである必要があります。

利用可能な最新で最高のインストーラーを使用する製品全体のレイアウトを作成するには、次を実行します

vs_enterprise.exe --layout C:\VSLayout --useLatestInstaller

レイアウトの維持

Visual Studio のレイアウトを、最新のセキュリティで保護されたバージョンの製品に定期的に更新することをお勧めします。 これにより、レイアウトをクライアント インストールのインストール ポイントと更新ソースの両方として使用できるようになります。 次のセクションでは、最も一般的な、または便利なレイアウト メンテナンス操作について説明します。

ネットワーク ファイル共有でレイアウトをホストする場合は、更新されたレイアウトをプライベート ローカル共有 (c:\VSLayoutUpdate など) にダウンロードし、更新されたすべてのコンテンツがダウンロードされたら、レイアウト ネットワーク ファイル共有 (\server\products\VS など) にコピーします。 これを行わないと、レイアウトを更新している最中にユーザーがセットアップを実行した場合、レイアウトがまだ完全に更新されていないため、レイアウトと内容が一致しなくなる可能性があります。

レイアウトを製品の最新バージョンに更新する

Microsoft では、更新されたバージョンの製品を頻繁にリリースして、機能やセキュリティの問題を修正しています。 クライアントが常に最新の最もセキュリティで保護されたバージョンの製品にアクセスできるように、最新バージョンの製品でレイアウトを更新しておくことを強くお勧めします。 これは、クライアントがインターネットにアクセスできず、製品の更新プログラムをレイアウトから "のみ" 受け取ることができる場合に特に重要です。 Visual Studio では通常、セキュリティ更新プログラムが第 2 火曜日 ("パッチの火曜日" と呼ばれます) にリリースされるため、パッチの火曜日の後にすべてのレイアウトを更新することをお勧めします。

初期レイアウトを作成すると、レイアウトに含めるワークロードや言語など、指定したオプションがレイアウトの構成ファイル layout.json に保存されます。 後で、そのレイアウトを新しいバージョンの製品に更新するときに、レイアウトで必要な製品のコンポーネントを再指定する必要はありません。 レイアウト更新では、単にレイアウトの既存のコンポーネントが最新バージョンに更新されます。

上記の表で、evergreen ブートストラップのいずれかを使用して、この部分レイアウトを既に作成しているとします。

vs_enterprise.exe --layout c:\VSLayout --add Microsoft.VisualStudio.Workload.ManagedDesktop --lang en-US

Microsoft が提供し、Microsoft サーバーでホストされている最新バージョンの製品にこのレイアウトを更新するのは簡単です。 レイアウトで既存の Evergreen ブートストラップを使用し、次のように、管理者特権のプロンプトで --layout コマンドを実行して最新のパッケージをレイアウトにダウンロードするだけで済みます。

vs_enterprise.exe --layout c:\VSLayout

また、レイアウトを無人方式で更新バージョンに更新することもできます。 レイアウト操作は、新しいコンソール ウィンドウでセットアップ プロセスを実行します。 管理者が最終的なレイアウトの更新結果と、発生した可能性のあるエラーの概要を確認できるように、ウィンドウは開いたままになります。 無人方式でレイアウト更新操作を実行したい場合は (たとえば、定期的に実行してお使いのレイアウトを最新バージョンに更新するスクリプトがある場合)、--passive パラメーターを使うと、プロセスは自動的にウィンドウを閉じます。

vs_enterprise.exe --layout c:\VSLayout --passive

レイアウトを製品の特定のバージョンに更新する

場合によっては、 特定のバージョンの製品にレイアウトを更新することが必要になることがあります。 たとえば、組織の標準化に使用しているサービス ベースラインの最新のセキュリティで保護されたバージョンとレイアウトを一致させることができます。 その方法を次に示します。

Visual Studio 2019 のリリースページにアクセスして、特定の修正済みのバージョンのブートストラップをダウンロードし、それをレイアウトにコピーした後、それを使用してレイアウトをブートストラップで指定された正確なバージョンに更新することができます。 上記とまったく同じ構文を使用します。

管理者向け更新プログラムを使用して、レイアウトを製品の特定のバージョンに更新できます。 管理者向け更新プログラムを入手するには、Microsoft Update カタログに移動し、レイアウトを更新する更新プログラムバージョンを検索します。 レイアウトをホストしているコンピューターに update.exe をダウンロードして、管理者特権でのコマンド プロンプトを開き、次のようなコマンドを実行します。

visualstudioupdate-16.0.0to16.11.23.exe layout --layoutPath c:\VSLayout

管理者向け更新プログラムでは、新しいレイアウトの作成は開始されないことに注意してください。既存のレイアウトのみが更新されます。 ブートストラップを使用して初期レイアウトを作成する必要があります。

Visual Studio 2022 のリリース履歴ページにアクセスして、特定の修正済みバージョンのブートストラップをダウンロードし、それをレイアウトにコピーした後、それを使用してレイアウトをブートストラップで指定された正確なバージョンに更新することができます。 上記とまったく同じ構文を使用します。

管理者向け更新プログラムを使用して、レイアウトを製品の特定のバージョンに更新できます。 管理者向け更新プログラムを入手するには、Microsoft Update カタログに移動し、レイアウトを更新する更新プログラムを検索します。 レイアウトをホストしているコンピューターに update.exe をダウンロードし、そのコンピューターで管理者特権でのコマンド プロンプトを開き、次のようなコマンドを実行します。

visualstudioupdate-17.0.0to17.4.4.exe layout --layoutPath c:\VSLayout

管理者向け更新プログラムでは、新しいレイアウトの作成は開始されないことに注意してください。既存のレイアウトのみが更新されます。 ブートストラップを使用して初期レイアウトを作成することが必要になります。

ネットワーク レイアウトがサポートされているバージョンに基づくかどうかの確認

場合によっては、チャネルがサポート対象外に移行するときに、クライアントが引き続きセキュリティ更新プログラムの通知を受け取ることができるように、サポートされているチャネルからネットワーク レイアウトが引き続き使用されるようにする必要があります。 レイアウトが VisualStudio.17.Release.LTSC.17.0 チャネルに基づいている場合は、17.0 LTSC チャネルが 2023 年 7 月にサポート対象外になると、それ以上のセキュリティ更新プログラムはリリースされなくなり、レイアウトとクライアントが安全ではなくなります。 さまざまな Visual Studio 2022 チャネルのサポート日については、こちらを参照してください

レイアウトの基になっているチャネルを変更するには、Visual Studio 2022 リリース履歴ページから目的のチャネルのブートストラップを取得し、それをレイアウト フォルダーにコピーして、通常の更新プログラムを実行します。 クライアントには、セキュリティも維持できるように、更新プログラムを適切に通知する必要があります。

レイアウトの内容を変更する

部分レイアウトを変更し、その他のワークロード、コンポーネント、または言語を "追加する" ことができます。 レイアウトからコンポーネントを確実に削除することはできません

次の例では、Azure ワークロードとローカライズされた言語を、Managed Desktop ワークロードと英語だけで以前に作成したレイアウトに追加します。 変更が完了すると、Managed Desktop と Azure の両方のワークロードと、英語とドイツ語のリソースがこのレイアウトに含まれます。 コンポーネントの追加に加えて、--layout コマンドにより、ブートストラップによって指定されたバージョンにレイアウトが更新されます。 そのため、Evergreen Bootstrapper を使用している場合、結果のレイアウトでは新しいコンポーネント、新しい言語、すべてのレイアウトの内容がブートストラップのチャネルの最新バージョンに更新されます。

vs_enterprise.exe --layout c:\VSLayout --add Microsoft.VisualStudio.Workload.Azure --lang de-DE

すべてのレイアウトになるように既存の部分レイアウトを変更する場合は、次の例に示すように、--all オプションを使用します。 ここでも、このコマンドにより、レイアウトの内容がブートストラップで指定されたバージョンに更新されます。

vs_enterprise.exe --layout c:\VSLayout --all

レイアウトに必要な追加コンポーネントを含む*.vsconfigファイルを渡すことで、レイアウトにコンポーネントを追加できます。 この操作を行うと、新しい*.vsconfigコンテンツによって既存のlayout.vsconfigコンテンツが上書きされます。 詳細については、前述のセクション構成ファイルを使用してレイアウトの内容を初期化するを参照してください。

vs_enterprise.exe --layout C:\VSLayout --config "C:\myupdatedconfig.vsconfig"

最後に、レイアウト フォルダー内の layout.json 構成ファイルを直接編集し、このファイルの "add" セクションを更新して、レイアウトに含める追加のコンポーネントを含めることができます。 その後、前に説明したように --layout を使用してレイアウトを更新し、最新のコンポーネントをダウンロードする必要があります。

Note

新しく追加されたレイアウト コンポーネントをクライアント コンピューターにインストールする最も簡単な方法は、クライアント コンピューターからレイアウトでブートストラップを実行することです。 レイアウト内の response.json ファイルの 'add' セクションによって、クライアントのインストーラー UI で既定で選択されているコンポーネントが決まります。 上記のいずれかの方法を使用してレイアウトを変更した場合は、手動で再確認し、場合によっては新しく変更した layout.json ファイルの 'add' セクションの内容とより適切に一致するように、response.json ファイル内の 'add' セクションを調整することができます。

クライアント コンピューター上のサポート対象外のコンポーネントを削除するようにレイアウトを構成します。

企業のお客様は、サポート対象外の状態に移行したコンポーネントを削除するという、Visual Studio 2022 バージョン 17.4 で導入された機能を利用したい場合もあるでしょう。 レイアウトを管理しており、クライアントが管理者の更新プログラムを受け取っている場合、これは比較的簡単に設定できます。 まず、後述するように最新バージョンのインストーラーを含むようにレイアウトを構成する必要があります。 次に、response.json ファイルに行 "removeOos": true を追加する必要があります。 レイアウトにこの 2 つの詳細が適切に設定されていれば、その後の管理者の更新プログラムではその設定が尊重され、サポート対象外のコンポーネントがクライアント コンピューターから削除されます。

レイアウトを検証する

パッケージ ファイルが見つからないか無効であるかを確認するネットワーク レイアウトの検証を実行するには、--verify を使用します。 検証の最後に、見つからないファイルと無効なファイルのリストを出力します。

検証は、特定のマイナー バージョンの Visual Studio の最新のバージョンに対してのみ機能します。 新しいバージョンがリリースされるとすぐに、以前のリリースを含むレイアウトでは検証が機能しません。

vs_enterprise.exe --layout <layoutDir> --verify

注意

レイアウト フォルダーには --verify オプションで必要とされるいくつかの重要なメタデータ ファイルが必要です。 これらのメタデータ ファイルが見つからない場合、"--verify" が実行できず、セットアップでエラーが返されます。 このエラーが発生した場合は、レイアウトを再度更新するか、別のフォルダーに新しいネットワーク レイアウトを再作成してみてください。

Microsoft は定期的に Visual Studio の更新プログラムを提供しているため、Evergreen ブートストラップを使用している場合は、より新しいレイアウトには最初のレイアウトと同じバージョンが含まれない可能性があることに注意してください。 ただし、固定リンク ブートストラップを使用すると、(ほぼ) 常に 1 つに決まるファイル セットが得られます。

レイアウトを修正する

--fix を使用して --verify と同じ検証を実行して、特定された問題の修正も試みます。 --fix の処理にはインターネット接続が必要なため、--fix を呼び出す前に、コンピューターがインターネットに接続していることを確認してください。

vs_enterprise.exe --layout <layoutDir> --fix

以前のバージョンをレイアウトから削除する

ネットワーク キャッシュにレイアウトの更新を実行した後、レイアウト フォルダーには最新の Visual Studio のインストールに不要な古いパッケージがいくつか含まれている場合があります。 --clean オプションを使用すると、ネットワーク レイアウト フォルダーから古いパッケージを削除できます。

これを行うには、その古いパッケージが含まれるカタログ マニフェストのファイル パスが必要になります。 カタログ マニフェストは、ネットワーク レイアウト キャッシュの "Archive" フォルダーにあります。 これは、レイアウトの更新時に保存されたものです。 "Archive" フォルダーには、1 つまたは複数の "GUID" 名フォルダーがあり、そのそれぞれに古いカタログ マニフェストが含まれています。 "GUID" フォルダーの数は、レイアウトに対する更新プログラムの数と同じである必要があります。

各 "GUID" フォルダー内にいくつかのファイルが保存されています。 特に関係のあるファイルが "catalog.json" ファイルと "version.txt" ファイルの 2 つです。 "catalog.json" ファイルは --clean オプションに渡す必要がある古いカタログ マニフェストです。 その他の version.txt ファイルには、この古いカタログ マニフェストのバージョンが含まれています。 バージョン番号に基づき、このカタログ マニフェストから古いパッケージを削除するかどうかを決定できます。 他の "GUID" フォルダーでも同じように行います。 クリーンアップを実行するカタログが決まったら、そのカタログのファイル パスを指定して --clean カタログを実行します。

--clean オプションを使用する方法の例を次に示します。

c:\VSLayout\vs_enterprise.exe --layout c:\VSLayout --clean c:\VSLayout\Archive\1cd70189-fc55-4583-8ad8-a2711e928325\Catalog.json --clean c:\VSLayout\Archive\d420889f-6aad-4ba4-99e4-ed7833795a10\Catalog.json

このコマンドを実行すると、セットアップでネットワークのレイアウト フォルダーが分析され、削除されるファイルのリストが検索されます。 このリストで、削除されるファイルを確認し、削除を確定できます。

常に最新のインストーラーを含め、提供するレイアウトを構成する

Note

2023 年 6 月現在、最新のインストーラーは、Visual Studio 2017、Visual Studio 2019、Visual Studio 2022 のサポート対象バージョンに対するすべての更新プログラムに既定で付属しています。 そのため、最新の機能とバグ修正を含む最新バージョンのインストーラーをレイアウトとクライアントに取得するために、明示的に行う必要があることは何もありません。

ただし、2023 年 6 月より前に作成されたレイアウトを使っている場合は、インストーラーがより新しいバージョンの Visual Studio の付属と見なされる場合でも、"常に" 最新のインストーラーを組み込んでクライアントに提供するよう、レイアウトを明示的に構成することもできます。 したがって、クライアントがこのレイアウトから更新する場合、クライアントはこのレイアウトによって含め、提供される最新のインストーラーを取得することになります。 この利点は、最新のインストーラーがクライアント上に配置されると、クライアントのインストールによって、Microsoft がインストーラーに追加し続けているバグ修正や新機能を利用できるようになることです。

ヒント

クライアントの Visual Studio 2019 のインストールで更新プログラムが検索される場所を変更する場合、またはサポート対象外のすべてのコンポーネントを削除する場合は、クライアント コンピューターに最新の Visual Studio 2022 インストーラーを置く "必要があります"。 これを行う方法の 1 つは、以下で説明するパラメーターを使用して、Visual Studio 2019 レイアウト内に Visual Studio 2022 インストーラーを含めることです。 最新のインストーラーを使用するこの機能は、最初に出荷された Visual Studio 2022 の後に作成された Visual Studio 2019 ブートストラップにのみ使用できます。 そのため、次の例の vs_enterprise.exe は、2021 年 11 月 10 日より後に出荷されたバージョンである必要があります。

レイアウトで最新のインストーラーを組み込み、提供できるようにするには、いくつかの方法があります。

  • 2023 年 6 月以降にビルドされた Visual Studio のバージョンを使用できます。

  • レイアウトを作成または更新するときに、--useLatestInstallerパラメーターをブートストラップに渡すことができます。 これにより、設定がレイアウトのルート ディレクトリにある layout.json ファイルに設定されます。 次に、レイアウトを更新し、使用可能な最新で最高のインストーラーを使用するように構成する方法の例を示します。

    vs_enterprise.exe --layout C:\VSLayout --useLatestInstaller
    
  • この設定を追加するには、直接 layout.json ファイルを編集します。

    {
       "installChannelUri": ".\\ChannelManifest.json",
       "channelUri": "\\\\server\\share\\layoutdirectory\\ChannelManifest.json",
       "installCatalogUri": ".\\Catalog.json",
       "channelId": "VisualStudio.16.Release",
       "productId": "Microsoft.VisualStudio.Product.Enterprise",
    
       "useLatestInstaller": true,
       "removeOos": true
    
    }
    

layout.json ファイルでこの設定をプログラムによって削除することはできません。そのため、Microsoft が提供する最新のインストーラーをレイアウトで 使用することを "停止" し、代わりにブートストラップに対応するバージョンのインストーラー (ほとんどの場合は最新のインストーラーよりも古い) を使用する場合は、layout.json ファイルを編集して "UseLatestInstaller": true 設定を削除してください。

この "UseLatestInstaller": true 設定はレイアウトの response.json ファイル内でも見つかる場合がありますが、レイアウトに常に最新のインストーラーがあることを保証するため、この設定は無視されることに注意してください。 response.json ファイルは、クライアントがレイアウトからインストールまたは更新するときに、"クライアント" の既定の構成オプションを設定するために使用されます layout.json ファイル内のこの特定の "useLatestInstaller": true 設定は、"レイアウト" の内容に最新のインストーラーが含まれていることを保証するために使用されます。これにより、クライアント コンピューターがレイアウトから最新のインストーラーを取得できるようになります。

エラー コード

--wait パラメーターを使用した場合、操作の結果に応じて、%ERRORLEVEL% 環境変数は次のいずれかの値に設定されます。

結果
0 操作は正常に終了しました
740 昇格が必要
1001 Visual Studio インストーラー プロセスが実行中です
1003 Visual Studio が使用中です
1602 操作が取り消されました
1618 別のインストールを実行しています
1641 操作が正常に完了し、再起動が開始されました
3010 操作は正常に完了しましたが、インストールした製品を使用する前に再起動が必要です
5003 ブートストラップによるインストーラーのダウンロードが失敗しました
5004 操作が取り消されました
5005 ブートストラップのコマンドライン解析エラー
5007 操作がブロックされました - コンピューターが要件を満たしていません
8001 Arm マシン チェックの失敗
8002 バックグラウンド ダウンロードの事前チェックの失敗
8003 サポート外の選択可能エラー
8004 ターゲット ディレクトリのエラー
8005 ソース ペイロードの有効性検証失敗
8006 Visual Studio プロセスを実行しています
8010 オペレーティング システムがサポートされていません。 システム要件 を参照してください
-1073720687 接続エラー
-1073741510 Microsoft Visual Studio インストーラーが終了しました (ユーザーか外部プロセスにより)
その他
(例:
-1、1、1603)
失敗の状態が発生しました。詳細については、ログを参照してください

ネットワーク レイアウトのサポートを受ける

ネットワーク レイアウトで問題が発生した場合は、それについて知りたいと思います。 Visual Studio インストーラーおよび Visual Studio IDE の両方に表示される [問題の報告] ツールから、製品の問題を Microsoft に報告してください。 自分は IT 管理者であるのに、Visual Studio がインストールされていない場合は、こちらで IT 管理者フィードバックを送信できます。 このツールを使用すると、問題の診断と解決に役立つ Visual Studio 収集ツールからログを送信できる場合に非常に便利です。

インストール関連の問題については、インストール チャット (英語のみ) のサポート オプションも用意されています。

他にも利用可能なサポート オプションがあります。 「Visual Studio 開発者コミュニティ」を参照してください。