Visual Studio의 네트워크 설치 만들기, 유지 관리 및 배포

때로 엔터프라이즈 관리자는 클라이언트 워크스테이션에 배포할 수 있는 Visual Studio 파일이 포함된 네트워크 설치 지점을 만들고 싶어 합니다. 이는 클라이언트 컴퓨터의 권한이나 인터넷 액세스가 제한된 상황이나 조직에서 특정 버전의 개발자 도구 집합을 표준화하려는 경우에 유용합니다. Visual Studio는 관리자가 내부 네트워크 공유에 저장할 수 있는 네트워크 레이아웃(파일 캐시)을 ‘만들고 유지 관리할 수 있도록’ 설계되어 있습니다. 네트워크 레이아웃은 초기 설치 및 후속 제품 업데이트 필요한 모든 Visual Studio 파일을 포함합니다.

이 웹 페이지에는 많은 정보가 있으며, 다음과 같은 섹션으로 구분되어 있습니다.

  • 시작하기 전에: 네트워크 레이아웃 만들기를 계획할 때 살펴보아야 할 팁과 중요한 고려 사항을 설명합니다.
  • 올바른 부트스트래퍼 받기: 사용 가능한 부트스트래퍼를 받을 수 있는 위치와 여러 부트스트래퍼를 구분하는 방법을 안내합니다.
  • 네트워크 레이아웃 만들기: 올바른 제품 콘텐츠, 채널 설정, 설치 관리자 버전으로 레이아웃을 만들고 네트워크 공유에 복사하는 방법을 설명합니다.
  • 네트워크 레이아웃 업데이트, 수정 및 유지 관리: 레이아웃의 제품 버전, 제품 콘텐츠, 채널 설정, 설치 관리자 버전, 폴더 크기를 업데이트하는 방법과 레이아웃을 유지 관리하는 방법을 설명합니다.
  • 클라이언트 컴퓨터에 레이아웃 설치: 기본적으로 설치할 워크로드와 구성 요소, 클라이언트가 업데이트를 확인할 위치 등 클라이언트 기본 설정을 구성하는 방법을 설명합니다. 클라이언트 컴퓨터에서 Visual Studio 레이아웃의 ‘초기 설치’를 수행하는 방법도 설명합니다. 레이아웃에서 설치된 클라이언트 컴퓨터를 ‘업데이트하는’ 방법은 별도의 Visual Studio의 네트워크 기반 설치 업데이트 페이지에서 설명합니다.
  • 도움말 및 지원: 지원을 받을 수 있는 곳을 안내합니다.

시작하기 전에

시작하기 전에 계획하고 알고 있어야 하는 몇 가지 중요한 사항이 있습니다.

  • 폴더 관리: 엔터프라이즈에서 여러 버전의 Visual Studio를 사용 중인 경우(예: Visual Studio 2017 Professional과 Visual Studio 2017 Enterprise를 모두 사용하는 경우) 버전별로 별도의 네트워크 설치 지점을 만들어야 합니다. 또한 클라이언트의 복구 및 제거 기능이 올바르게 작동하도록 하려면 원래 Visual Studio 설치 레이아웃과 모든 후속 제품 업데이트를 동일한 네트워크 디렉터리에 배치해야 합니다. 마지막으로, 일부 조직에서는 기호 링크를 사용하여 80자 제한을 우회한 경우도 있긴 하지만, 레이아웃 경로는 기본적으로 80자 미만이어야 합니다.
  • 업데이트 계획: 초기 클라이언트 설치를 진행하기 ‘전에’ 클라이언트 컴퓨터가 제품 업데이트를 받을 방법을 정해야 합니다. 이는 클라이언트의 업데이트 위치 구성을 올바르게 설정하기 위해 반드시 필요합니다. 클라이언트는 네트워크 레이아웃 위치나 인터넷의 Microsoft 호스트 서버에서 업데이트를 받을 수 있습니다. 클라이언트가 레이아웃에서 설치를 완료한 후에는 클라이언트의 업데이트 위치 구성이 잠기고 더 이상 변경할 수 없습니다.
  • 폴더 관리: 엔터프라이즈에서 여러 버전의 Visual Studio를 사용 중인 경우(예: Visual Studio 2019 Professional과 Visual Studio 2019 Enterprise를 모두 사용하는 경우) 버전별로 별도의 네트워크 설치 지점을 만들어야 합니다. 또한, 일부 조직에서는 기호 링크를 사용하여 80자 제한을 우회한 경우도 있긴 하지만, 레이아웃 경로는 기본적으로 80자 미만이어야 합니다.
  • 업데이트 계획: 초기 클라이언트 설치를 진행하기 ‘전에’ 클라이언트 컴퓨터가 제품 업데이트를 받을 방법을 정해야 합니다. 이는 클라이언트의 업데이트 위치 구성을 올바르게 설정하기 위해 반드시 필요합니다. 클라이언트는 네트워크 레이아웃 위치나 인터넷의 Microsoft 호스트 서버에서 업데이트를 받을 수 있습니다.

중요

Visual Studio 2019 기능만 사용하는 경우 레이아웃 관리에 다음과 같은 제한 사항이 적용됩니다. 클라이언트가 레이아웃에서 설치를 완료한 후에는 클라이언트의 업데이트 위치가 잠기고 더 이상 변경할 수 없습니다. 아는 클라이언트의 복구 및 제거 기능이 올바르게 작동하도록 하는 동시에 레이아웃에서 업데이트를 받도록 하려면 모든 후속 제품 업데이트를 클라이언트가 설치를 받은 ‘원래’ 레이아웃 폴더에 배치해야 함을 의미합니다. 즉, 기본 Visual Studio 2019 기능은 클라이언트가 하나의 레이아웃 위치에서 원래 설치를 수행하고 해당 클라이언트가 다른 레이아웃 위치에서 제품 업데이트를 받도록 하는 기능을 지원하지 않습니다.

Visual Studio 2022에는 제품 업데이트 위치가 고정되고 제품 업데이트가 원래 설치 레이아웃과 동일한 레이아웃 폴더에 있어야 한다는 제한 사항이 적용되지 ‘않습니다’. 2022년 Visual Studio 업데이트에 대한 클라이언트의 원본 위치를 쉽게 변경할 수 있습니다. 2019 버전의 제한 사항에 구애되지 않도록 Visual Studio 제품군의 ‘모든’ 최신 버전을 제어하는 최신(Visual Studio 2022) 설치 관리자를 포함하고 사용하여 Visual Studio 2019 레이아웃을 관리할 수 있습니다. 아래 섹션에서는 항상 포함하도록 레이아웃을 구성하고 최신 설치 관리자를 제공합니다 .

  • 폴더 관리: 엔터프라이즈에서 여러 버전의 Visual Studio를 사용 중인 경우(예: Visual Studio 2022 Professional과 Visual Studio 2022 Enterprise를 모두 사용하는 경우) 버전별로 별도의 네트워크 설치 지점을 만들어야 합니다. 또한, 일부 조직에서는 기호 링크를 사용하여 80자 제한을 우회한 경우도 있긴 하지만, 레이아웃 경로는 기본적으로 80자 미만이어야 합니다.
  • 업데이트 계획: 초기 클라이언트 설치를 진행하기 ‘전에’ 클라이언트 컴퓨터가 제품 업데이트를 받을 방법을 정하는 것이 좋습니다. 이는 클라이언트의 업데이트 위치 구성을 올바르게 초기화하기 위한 것입니다. 클라이언트는 네트워크 레이아웃 위치나 인터넷의 Microsoft 호스트 서버에서 업데이트를 받을 수 있습니다. 다행히 초기 설치가 이루어진 ‘후에도’ 클라이언트의 업데이트 소스 위치를 구성할 수 있습니다.

네트워크 레이아웃 만들기를 위해 Visual Studio 부트스트래퍼 다운로드

원하는 Visual Studio 버전에 해당하는 부트스트래퍼를 다운로드하여 레이아웃의 소스 위치로 사용할 디렉터리에 복사합니다. 레이아웃이 만들어지면 이 레이아웃을 사용하여 모든 클라이언트 컴퓨터에 Visual Studio 설치할 수 있습니다. 부트스트래퍼는 레이아웃을 만들고 업데이트하고 그 밖의 작업을 수행하는 데 사용하는 실행 파일입니다. 이 단계를 완료하려면 인터넷에 연결되어야 합니다.

Visual Studio 2017 버전 15.9에 대한 최신 부트스트래퍼를 얻으려면 아래 파일 중 하나를 다운로드합니다. 아래에 나열된 부트스트래퍼는 실행 시점과 관계없이 항상 가장 안전한 버전의 Visual Studio 2017을 설치합니다.

버전 부트스트래퍼
Visual Studio 2017 Enterprise 버전 15.9 vs_enterprise.exe
Visual Studio 2017 Professional 버전 15.9 vs_professional.exe
Visual Studio 2017 Build Tools 버전 15.9 vs_buildtools.exe

이 밖에 지원되는 부트스트래퍼에는 vs_feedbackclient.exe, vs_teamexplorer.exe, vs_testagent.exe, vs_testcontroller.exe, vs_testprofessional.exe가 있습니다.

아래에 나열된 부트스트래퍼는 실행 시점과 관계없이 항상 가장 안전한 버전의 Visual Studio 2019를 설치합니다. 특정 버전의 Visual Studio 2019를 만들거나 설치하려면 각 서비스 릴리스를 위한 고정 버전 부트스트래퍼 링크가 있는 Visual Studio 2019 릴리스 페이지를 방문하여 원하는 부트스트래퍼를 다운로드하세요. 다운로드한 부트스트래퍼를 레이아웃의 소스 위치로 사용할 디렉터리에 복사합니다.

버전 부트스트래퍼
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.exe, vs_testagent.exe, vs_testcontroller.exe가 있습니다.

아래에 나열된 부트스트래퍼는 실행 시점과 관계없이 항상 현재 채널에서 가장 안전한 버전의 Visual Studio 2022를 설치합니다. 특정 버전 또는 특정 채널의 Visual Studio 2022를 만들거나 설치하려면 각 서비스 릴리스를 위한 에버그린 및 고정 버전 부트스트래퍼 링크가 있는 Visual Studio 2022 릴리스 기록 페이지를 방문하여 원하는 부트스트래퍼를 다운로드하세요. 다운로드한 부트스트래퍼를 레이아웃의 소스 위치로 사용할 디렉터리에 복사합니다.

버전 부트스트래퍼
Visual Studio 2022 Enterprise vs_enterprise.exe
Visual Studio 2022 Professional vs_professional.exe
Visual Studio 2022 Build Tools vs_buildtools.exe

이전에 다운로드한 부트스트래퍼 파일의 버전을 확인하려는 경우에는 다음을 참조하세요. Windows에서 파일 탐색기를 열고 부트스트래퍼 파일을 마우스 오른쪽 단추로 클릭한 다음, 속성 을 선택하고 세부 정보 탭을 선택한 다음, 제품 버전 번호를 확인합니다. 이 번호가 Visual Studio 릴리스와 일치하는지 확인하려면 Visual Studio 빌드 번호 및 릴리스 날짜를 참조하세요.

이전에 다운로드한 부트스트래퍼 파일의 버전을 확인하려는 경우에는 다음 방법을 참조하세요. 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 Community의 경우 약 35GB, Visual Studio Enterprise의 경우 45GB입니다. 추가 언어 로캘마다 약 0.5GB가 각각 필요합니다.

권장되는 방법은 네트워크 서버의 레이아웃 디렉터리에 모든 언어와 모든 워크로드가 있는 Visual Studio Enterprise의 초기 레이아웃을 만드는 것입니다. 이렇게 하면 클라이언트가 전체 제품에 액세스할 수 있습니다. Visual Studio의 전체 레이아웃을 만들려면 네트워크 레이아웃을 호스트할 컴퓨터에서 다음을 실행합니다.

vs_enterprise.exe --layout c:\VSLayout

레이아웃의 채널이 올바른지 확인

네트워크 레이아웃이 올바른 채널을 기반으로 하는지 확인하는 것이 중요합니다. 채널은 관리자 업데이트가 조직 전체에 배포되는 경우 어느 클라이언트 인스턴스를 업데이트해야 하는지 식별하는 데 사용하는 기준 중 하나이기 때문입니다. 예를 들어, 레이아웃이 VisualStudio.17.Release.LTSC.17.0 채널을 기반으로 하며 클라이언트가 Microsoft 호스트 서버에서 업데이트를 받도록 구성된 경우, 이 레이아웃에서 설치했거나 업데이트한 모든 클라이언트는 17.0 LTSC 채널에 공개되는 모든 보안 업데이트를 사용할 수 있습니다.

위에 나열된 부트스트래퍼는 현재 채널을 기반으로 합니다. LTSC 채널 중 하나를 기반으로 하는 레이아웃을 만들려면 Visual Studio 2022 릴리스 기록 페이지에서 올바른 채널의 부트스트래퍼를 받은 후 레이아웃 폴더에 복사하고 이를 사용하여 레이아웃을 만들거나 업데이트하면 됩니다.

네트워크 레이아웃의 콘텐츠 구성

네트워크 레이아웃의 콘텐츠를 사용자 지정하는 데 사용할 수 있는 여러 가지 옵션이 있습니다. 언어 로캘, 워크로드, 구성 요소, 권장 또는 선택적 종속성의 특정 집합만 포함된 부분 레이아웃을 만들 수 있습니다. 워크로드의 하위 집합만 클라이언트 워크스테이션에 배포하려는 경우 이 방법이 유용할 수 있습니다. 레이아웃을 사용자 지정하기 위한 일반적인 명령줄 매개 변수는 다음과 같습니다.

  • --add - 워크로드 또는 구성 요소 ID를 지정합니다.
    --add가 사용되면 --add로 지정된 워크로드 및 구성 요소만 다운로드됩니다. --add를 사용하지 않으면 모든 워크로드 및 구성 요소가 다운로드됩니다.
  • --includeRecommended: 지정된 워크로드 ID의 모든 권장 구성 요소를 포함합니다.
  • --includeOptional: 지정된 워크로드 ID의 모든 선택적 구성 요소를 포함합니다.
  • --lang - 언어 로캘을 지정합니다.

다음은 사용자 지정 부분 레이아웃을 만드는 방법에 대한 몇 가지 예제입니다.

  • 하나의 언어에 대해서만 모든 워크로드 및 구성 요소가 있는 레이아웃을 만들려면 다음을 실행합니다.

    vs_enterprise.exe --layout C:\VSLayout --lang en-US
    
  • 여러 언어에 대해 모든 워크로드 및 구성 요소가 있는 레이아웃을 만들려면 다음을 실행합니다.

    vs_enterprise.exe --layout C:\VSLayout --lang en-US de-DE ja-JP
    
  • 하나의 워크로드와 이 워크로드의 모든 권장 구성 요소가 있는 레이아웃을 만들려면 모든 언어에 대해 다음을 실행합니다.

    vs_enterprise.exe --layout C:\VSLayout --add Microsoft.VisualStudio.Workload.Azure --includeRecommended
    
  • 두 개의 워크로드와 세 개 언어에 대한 하나의 선택적 구성 요소가 있는 레이아웃을 만들려면 다음을 실행합니다.

    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
    
  • 두 개의 워크로드와 이 워크로드의 모든 권장 구성 요소 및 선택적 구성 요소가 있는 레이아웃을 만들려면 다음을 실행합니다.

    vs_enterprise.exe --layout C:\VSLayout --add Microsoft.VisualStudio.Workload.Azure --add Microsoft.VisualStudio.Workload.ManagedDesktop --includeRecommended --includeOptional
    

레이아웃이 최신 설치 관리자를 사용하는지 확인

레이아웃에서 항상 최신 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
    

레이아웃을 네트워크 공유로 복사

다른 클라이언트 컴퓨터에서 실행할 수 있도록 레이아웃을 네트워크 공유에 호스트해야 합니다. 레이아웃을 로컬 컴퓨터에서 만들었다면 네트워크 위치에 복사해야 합니다. 다음 예제에서는 xcopy를 사용합니다. 원하는 경우 robocopy를 사용할 수도 있습니다. 예:

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

중요

오류를 방지하려면 네트워크 공유의 전체 레이아웃 경로를 80자 미만으로 적용해야 합니다. 일부 조직에서는 기호 링크를 사용하여 80자 제한을 우회한 경우도 있습니다.

레이아웃 업데이트 또는 수정

설치 지점으로 사용되는 동시에 클라이언트 워크스테이션이 최신 버전의 Visual Studio를 받을 업데이트 소스로 사용되도록 Visual Studio의 네트워크 레이아웃 업데이트할 수 있습니다. 레이아웃을 주기적으로 업데이트하는 것이 권장되며, 클라이언트가 레이아웃에서 업데이트를 받도록 하려는 경우에는 주기적인 업데이트가 특히 중요합니다. 이 섹션에서는 가장 일반적이고 유용한 레이아웃 유지 관리 작업에 관해 설명합니다.

파일 공유에서 레이아웃을 호스트하는 경우 레이아웃의 개인 복사본(예: c:\VSLayout)을 업데이트한 다음 업데이트된 콘텐츠를 모두 다운로드한 후 파일 공유(예 \: \server\products\VS)에 복사할 수 있습니다. 이렇게 하지 않으면 관리자가 레이아웃을 업데이트하는 동안 설치 프로그램을 실행하는 사용자가 레이아웃이 완전히 업데이트되지 않아 레이아웃에서 일치하지 않는 콘텐츠를 가져오게 될 가능성이 있습니다.

레이아웃을 제품의 최신 버전으로 업데이트

Microsoft는 기능 또는 보안 문제를 해결하기 위해 제품의 업데이트된 버전을 빈번하게 릴리스합니다. 새 클라이언트 설치가 항상 최신의 좋은 점을 받을 수 있도록 레이아웃을 최신 버전의 제품으로 업데이트하는 것이 좋습니다. 클라이언트가 레이아웃에서 업데이트를 받도록 구성된 경우에도 레이아웃을 업데이트된 상태로 유지하는 것이 매우 중요합니다.

초기 레이아웃을 만들면 레이아웃에 포함할 워크로드 및 언어와 같은 지정된 옵션이 레이아웃의 구성 파일에 저장됩니다. 이후 레이아웃을 제품의 최신 버전으로 업데이트할 때, 초기 레이아웃을 만드는 중에 사용한 옵션을 다시 지정할 필요가 없습니다. 레이아웃 업데이트 명령은 저장된 레이아웃 설정을 자동으로 사용합니다.

위 표에 있는 에버그린 부트스트래퍼 중 하나를 사용하여 다음과 같은 부분 레이아웃을 만들었다고 가정하겠습니다.

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

이 레이아웃을 Microsoft에서 제공하고 Microsoft 서버에서 호스트되는 제품의 최신 버전으로 업데이트하는 것은 어렵지 않습니다. 동일한 에버그린 부트스트래퍼를 사용하고 --layout 명령을 다시 한번 실행하여 레이아웃으로 최신 패키지를 다운로드하면 됩니다.

vs_enterprise.exe --layout c:\VSLayout

레이아웃을 무인 방식으로 최신 버전으로 업데이트할 수도 있습니다. 레이아웃 작업은 새 콘솔 창에서 설치 프로세스를 실행합니다. 사용자가 최종 결과는 물론, 발생했을 수 있는 오류에 대한 요약을 볼 수 있도록 창이 열려 있습니다. 무인 방식으로 레이아웃 작업을 수행하고 있는 경우(예를 들어 레이아웃을 최신 버전으로 업데이트하기 위해 정기적으로 실행되는 스크립트가 있는 경우) --passive 매개 변수를 사용하면 프로세스는 창을 자동으로 종료하니다.

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

레이아웃을 제품의 특정 버전으로 업데이트

레이아웃을 ‘제품의 특정 버전’으로 업데이트해야 하는 경우가 있습니다. 레이아웃을 조직이 표준 버전이 된 서비스 기준의 초신 보안 버전과 매칭해야 하는 경우를 예로 들 수 있습니다. 수행하는 방법은 다음과 같습니다.

Visual Studio 2019 릴리스 페이지로 이동하여 특정 고정 버전 부트스트래퍼를 다운로드하고 레이아웃에 복사한 다음 이를 사용하여 레이아웃을 부트스트래퍼에 지정된 버전으로 업데이트할 수 있습니다. 이때 위와 동일한 구문을 사용합니다.

Visual Studio 2022 릴리스 기록 페이지로 이동하여 특정 고정 버전 부트스트래퍼를 다운로드하고 레이아웃에 복사한 다음 이를 사용하여 레이아웃을 부트스트래퍼에 지정된 버전으로 업데이트할 수 있습니다. 이때 위와 동일한 구문을 사용합니다.

관리자 업데이트 를 사용하여 레이아웃을 특정 버전으로 업데이트할 수 있습니다. 관리자 업데이트 를 가져오려면 Microsoft 업데이트 카탈로그로 이동하여 레이아웃을 업데이트할 업데이트를 검색합니다. 레이아웃이 호스트된 컴퓨터에 update.exe 를 다운로드하고 이 컴퓨터에서 명령 프롬프트를 연 다음 아래와 같은 명령을 실행합니다.

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

관리자 업데이트는 원래 레이아웃 설치를 시작하지 않으며, 기존 레이아웃 또는 클라이언트 인스턴스만 업데이트합니다.

네트워크 레이아웃의 채널 수정

때때로 채널의 지원이 종료되는 경우가 있습니다. 따라서 클라이언트가 계속해서 보안 업데이트 알림을 받을 수 있도록 네트워크 레이아웃이 지원되는 채널을 기반으로 하는지 확인해야 합니다. 레이아웃이 VisualStudio.17.Release.LTSC.17.0 채널을 기반으로 하는 경우, 17.0 LTSC 채널의 지원이 종료되면 더 이상 이 채널로 보안 업데이트가 릴리스되지 않으므로 레이아웃과 채널이 안전하지 않게 됩니다.

레이아웃의 기반 채널을 변경하려면 Visual Studio 2022 릴리스 기록 페이지에서 원하는 채널의 부트스트래퍼를 가져와서 레이아웃 폴더에 복사한 다음 일반적인 업데이트를 수행하면 됩니다. 그러면 클라이언트에 업데이트 알림이 제공되어 보안 상태를 유지할 수 있게 됩니다.

레이아웃의 콘텐츠 수정

이 레이아웃을 수정하여 추가 워크로드, 구성 요소 또는 언어를 추가하거나 제거할 수 있습니다. 아래 예제에서는 위에서 만든 레이아웃에 Azure 워크로드와 현지화된 언어가 추가됩니다. 수정을 적용한 후에는 이 레이아웃에 관리형 데스크톱 워크로드 및 Azure 워크로드와 영어 및 독일어 리소스가 포함됩니다. 이와 동시에 레이아웃이 사용 가능한 최신 버전으로 업데이트됩니다.

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

기존 부분 레이아웃이 전체 레이아웃이 되도록 수정하려면 다음 예제처럼 --all 옵션을 사용하세요.

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

버전을 업데이트하지 ‘않고’ 추가 워크로드와 현지화된 언어를 추가하는 방법은 다음과 같습니다. (이 명령은 ASP.NET 및 웹 개발 워크로드를 추가합니다.) 이제 관리형 데스크톱, Azure 및 ASP.NET & 웹 개발 워크로드가 이 레이아웃에 포함됩니다. 이러한 모든 워크로드에 대해 영어, 독일어 및 프랑스어용 언어 리소스도 포함됩니다. 그러나 이 명령을 실행하면 레이아웃이 사용 가능한 최신 버전으로 업데이트되지 않고 기존 버전으로 유지됩니다.

vs_enterprise.exe --layout c:\VSLayout --add Microsoft.VisualStudio.Workload.NetWeb --lang fr-FR --keepLayoutVersion

중요

업데이트 작업에서는 레이아웃 또는 클라이언트에 추가 선택적 구성 요소를 다운로드하거나 설치하지 않습니다. 선택적 구성 요소를 추가하거나 변경해야 하는 경우 먼저 layout.json 구성 파일에서 이전 선택적 구성 요소를 제거한 다음 필요한 새 구성 요소를 layout.json의 “add” 섹션에 포함하세요. 그런 다음 --layout 명령을 실행하여 레이아웃을 업데이트하면 새로 추가된 구성 요소가 레이아웃에 다운로드됩니다.

이러한 새 구성 요소를 클라이언트 머신에 설치하려면 다음 세 단계를 수행해야 합니다. 먼저 위에 설명된 대로 레이아웃에 새 구성 요소가 포함되어 있는지 확인합니다. 다음으로 레이아웃의 최신 비트로 클라이언트를 업데이트합니다. 마지막으로 다시 클라이언트에서, 레이아웃에 추가된 새 구성 요소를 클라이언트 머신에 설치하는 수정 작업을 실행합니다.

항상 최신 설치 관리자를 포함하고 제공하도록 레이아웃 구성

설치 관리자가 최신 버전의 Visual Studio 일부로 간주되는 경우에도 항상 클라이언트에 최신 설치 관리자를 포함하고 제공하도록 레이아웃을 구성할 수 있습니다. 따라서 클라이언트가 이 레이아웃에서 업데이트되면 클라이언트는 이 레이아웃에 포함되고 제공되는 최신 설치 관리자를 가져옵니다. 이점은 최신 설치 관리자가 클라이언트에 있으면 클라이언트 설치에서 버그 수정 및 설치 관리자에 계속 추가하는 새로운 기능을 활용할 수 있다는 것입니다.

클라이언트의 Visual Studio 2019 설치에서 업데이트를 찾는 위치를 변경하려면 클라이언트 컴퓨터에 최신 Visual Studio 2022 설치 관리자를 가져와야 합니다. 이 작업을 수행하는 한 가지 방법은 아래에 설명된 매개 변수를 사용하여 Visual Studio 2019 레이아웃 내에 Visual Studio 2022 설치 관리자를 포함하는 것입니다. 최신 설치 관리자를 사용하는 기능은 2022년 Visual Studio 이후에 제작된 Visual Studio 2019 부트스트래퍼에서만 사용할 수 있습니다. 따라서 아래 예제의 vs_enterprise.exe는 2021년 11월 10일 ‘이후에’ 제공된 버전이어야 합니다.

레이아웃에서 최신 설치 관리자를 포함하고 제공할 수 있는 두 가지 방법이 있습니다.

  • 레이아웃을 만들거나 업데이트할 때 부트스트래퍼에 --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
    
    }
    

layout.json 파일에서 이 설정을 프로그래밍 방식으로 제거하는 방법은 없으므로, 레이아웃이 Microsoft가 제공하는 최신 설치 관리자를 사용하지 ‘않고’ 부트스트래퍼에 대응하는 버전(일반적으로 최신 설치 관리자보다 오래된 버전)을 사용하도록 하려면 layout.json 파일을 편집하여 "UseLatestInstaller": true 설정을 제거해야 합니다.

레이아웃의 response.json 파일에서도 이 "UseLatestInstaller": true 설정을 찾을 수 있지만 여기서는 무시됩니다. response.json 파일은 클라이언트가 레이아웃에서 설치하거나 업데이트할 때 클라이언트 에서 기본 구성 옵션을 설정하는 데 사용됩니다. 이 특정 "useLatestInstaller": true 설정은 클라이언트 컴퓨터가 레이아웃에서 최신 설치 관리자를 가져올 수 있도록 레이아웃 의 내용에 최신 설치 관리자를 포함하도록 하는 데 사용됩니다.

레이아웃 확인

--verify를 사용하여 네트워크 레이아웃에서 패키지 파일이 누락되었거나 유효하지 않은지 검사하는 확인을 수행합니다. 확인이 끝나면 누락된 파일과 유효하지 않은 파일의 목록이 출력됩니다.

확인은 Visual Studio의 특정 부 버전의 최신 버전에 대해서만 작동합니다. 확인은 새 버전이 릴리스되면 이전 릴리스를 포함하는 레이아웃에서 작동하지 않습니다.

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

참고

--verify 옵션에 필요한 몇 가지 중요한 메타데이터 파일이 레이아웃 폴더에 있어야 합니다. 이러한 메타데이터 파일을 사용할 수 없으면 “--verify”가 실행될 수 없고 설치 프로그램에서 오류가 발생합니다. 이 오류가 발생할 경우 레이아웃을 다시 업데이트해 보거나 다른 폴더에서 네트워크 레이아웃을 다시 만드세요.

Microsoft는 주기적으로 Visual Studio 업데이트를 제공하므로, [고정 링크 부트스트래퍼](#download-the-visual-studio-bootstrapper-to create-the-network-layout)를 사용한 경우가 아닌 이상 최신 레이아웃은 초기 레이아웃과 동일한 버전을 포함하지 않을 수 있습니다.

레이아웃 수정

--fix를 사용하여 --verify와 동일한 확인을 수행하고 식별된 문제를 해결해 볼 수도 있습니다. --fix 프로세스를 실행하려면 인터넷 연결이 필요하므로 --fix를 호출하기 전에 머신이 인터넷에 연결되어 있는지 확인합니다.

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

레이아웃에서 이전 버전 제거

네트워크 캐시에 대한 레이아웃 업데이트를 수행한 후에는 레이아웃 폴더가 최신 Visual Studio 설치에 더 이상 필요하지 않은 더 이상 사용되지 않는 패키지를 포함할 수 있습니다. --clean 옵션을 사용하여 네트워크 레이아웃 폴더에서 더 이상 사용되지 않는 패키지를 제거할 수 있습니다.

이렇게 하려면 이러한 사용되지 않는 패키지를 포함하는 카탈로그 매니페스트에 대한 파일 경로가 필요합니다. 카탈로그 매니페스트는 네트워크 레이아웃 캐시의 “보관” 폴더에서 찾을 수 있으며 레이아웃을 업데이트할 때 이 위치에 저장됩니다. “보관” 폴더에는 하나 이상의 “GUID” 폴더가 있고 각 폴더에는 사용되지 않는 카탈로그 매니페스트가 포함되어 있습니다. “GUID” 폴더의 수는 레이아웃을 업데이트한 수와 동일합니다.

소수의 파일이 각 “GUID” 폴더 안에 저장됩니다. 가장 관심이 가는 두 파일은 “catalog.json” 파일과 “version.txt” 파일입니다. “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

이 명령을 실행하면 설치 프로그램이 네트워크 레이아웃 폴더를 분석하여 제거할 파일 목록을 찾습니다. 그러면 삭제될 파일을 검토하고 삭제를 확인할 수 있습니다.

네트워크 설치에서 클라이언트 컴퓨터에 Visual Studio 설치

관리자는 설치 스크립트의 일부로 Visual Studio를 클라이언트 워크스테이션에 배포할 수 있습니다. 또는 관리자 권한을 가진 사용자는 공유에서 직접 설치 프로그램을 실행하여 Visual Studio를 머신에 설치할 수 있습니다.

  • 사용자는 다음 명령을 실행하여 네트워크 레이아웃에서 수동으로 제품을 설치할 수 있습니다.

    \\server\products\VS\vs_enterprise.exe
    
  • 관리자는 다음 명령을 실행하여 무인 모드로 설치할 수 있습니다.

    \\server\products\VS\vs_enterprise.exe --quiet --wait --norestart
    

참고

조금만 기다려주세요. --wait를 사용하여 설치 관리자와 제품이 완료될 때까지 기다리세요. 레이아웃에서 클라이언트를 설치하거나 업데이트하는 경우 항상 설치 관리자가 먼저 설치 또는 업데이트된 다음 Visual Studio가 설치 또는 업데이트됩니다. 두 가지 프로세스가 모두 완료되어야 업데이트가 성공적으로 이루어진 것으로 간주됩니다.

무인 자동 배치 파일의 일환으로 설치 또는 업데이트를 실행할 때 --wait 옵션을 사용하면 설치가 완료된 후에 종료 코드를 반환할 때까지 vs_enterprise.exe 프로세스가 기다리도록 할 수 있습니다. 이는 엔터프라이즈 관리자가 완료된 설치에 대한 추가 작업을 수행하려는 경우(예: 성공적인 설치에 제품 키 적용)에 유용합니다 --wait 옵션을 사용하면 후속 작업이 너무 이르게 시작되지 않도록 할 수 있습니다. --wait를 사용하지 않으면 설치의 두 가지 프로세스가 완료되기 전에 vs_enterprise.exe 프로세스가 종료될 수 있으며, 따라서 설치 작업의 진정한 상태를 나타내지 않는 부정확한 종료 코드가 반환될 수 있습니다.

인터넷에 액세스할 수 없는 클라이언트에 설치

레이아웃에서 설치하는 경우, 설치되는 콘텐츠는 기본적으로 레이아웃에서 가져와 집니다. 그러나 레이아웃에 없는 구성 요소를 선택하는 경우, 클라이언트가 Microsoft 호스트 서버에서 업데이트를 확인하도록 구성되었다면 설치 관리자가 인터넷에서도 Visual Studio 패키지를 가져오려고 시도합니다. Visual Studio가 레이아웃에 없는 콘텐츠를 웹에서 다운로드하지 않도록 하려면 --noWeb 옵션을 사용하세요. --noWeb을 사용하면 설치하도록 선택된 콘텐츠가 레이아웃에서 누락된 경우 설치가 실패합니다.

중요

--noWeb 옵션은 클라이언트가 Microsoft 호스팅 서버에서 업데이트를 확인하도록 구성된 경우 인터넷에 연결된 클라이언트 컴퓨터의 Visual Studio 설치 관리자가 업데이트를 확인하는 것을 멈추지 않습니다. 대신 클라이언트 --noWeb 가 제품 패키지를 다운로드하지 못하게 합니다. 자세한 내용은 네트워크 레이아웃 페이지에서 설치된 Visual Studio 클라이언트 업데이트를 참조하세요.

“다음 매개 변수와 일치하는 제품을 찾을 수 없습니다”라는 오류 메시지가 표시되면 --noweb 스위치를 사용하고 있는지 확인합니다.

이 레이아웃의 초기 클라이언트 설치 기본값 구성

레이아웃 폴더에서 일부 파일을 수정하여 클라이언트 컴퓨터에 제품이 처음으로 설치될 때 사용될 기본값을 설정할 수 있습니다. 일반적으로 사용되는 구성 옵션은 다음과 같습니다.

  • 초기 설치 중에 어느 워크로드, 구성 요소 또는 언어를 기본적으로 선택할지 구성 하는 기능.
  • 클라이언트가 업데이트를 받을 위치 를 지정하는 기능. 옵션은 관리자가 제어하는 네트워크 레이아웃 위치 또는 인터넷의 Microsoft 호스트 서버(기본값)에서 가져옵니다.

레이아웃의 기본 클라이언트 설정을 사용자 지정 및 구성하는 자세한 방법은 지시 파일을 사용하여 Visual Studio 설치 자동화를 참조하세요.

엔터프라이즈 배포 동작 구성

다음과 같은 다른 엔터프라이즈 배포 동작을 제어할 수도 있습니다.

  • 관리자 업데이트를 사용하도록 설정할지 여부, 관리자 업데이트가 적용되는 방식
  • 사용 가능한 업데이트 채널, 업데이트 설정 대화 상자에서 클라이언트 컴퓨터에 업데이트 채널이 표시되는 방식
  • 공유 패키지가 설치되는 위치
  • 패키지가 캐시되는지 여부와 그 위치
  • 알림이 표시되는지 여부와 표시되는 방식

자세한 내용은 Visual Studio의 엔터프라이즈 배포에 대한 기본값 설정을 참조하세요.

공유 패키지가 설치되는 위치와 같은 다른 엔터프라이즈 배포 동작을 제어할 수도 있습니다. 자세한 내용은 Visual Studio의 엔터프라이즈 배포에 대한 기본값 설정을 참조하세요.

오류 코드

--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 프로세스 실행 중
-1073720687 연결 실패
-1073741510 Microsoft Visual Studio 설치 관리자가 종료되었습니다(사용자 또는 외부 프로세스에 의해).
기타
(예:
-1, 1, 1603)
오류 조건 발생 - 자세한 내용은 로그를 확인하세요.

네트워크 레이아웃에 관한 지원 받기

네트워크 레이아웃에 문제가 있다면 저희에게 알려 주세요. 가장 좋은 방법은 Visual Studio 설치 관리자와 Visual Studio IDE에 있는 문제 보고 도구를 사용하는 것입니다. 본인이 IT 관리자이고 Visual Studio가 설치되어 있지 않다면 여기에서 IT 관리자 피드백을 제출할 수 있습니다. 이 도구를 사용하는 경우 VS 수집 도구의 로그를 함께 보내 주시면 문제를 진단하고 수정하는 데 큰 도움이 됩니다.

설치 관련 문제를 위한 설치 채팅(영어만 가능) 지원 옵션도 제공됩니다.

사용 가능한 다른 지원 옵션도 있습니다. Visual Studio Developer Community를 참조하세요.

참조