Visual Studio에서 C# 또는 Visual Basic 프로젝트 원격 디버깅

다른 컴퓨터에 배포된 Visual Studio 애플리케이션을 디버그하려면 앱을 배포한 컴퓨터에 원격 도구를 설치 및 실행하고 Visual Studio에서 원격 컴퓨터에 연결하도록 프로젝트를 구성한 후 앱을 실행합니다.

Screenshot of remote debugger components.

유니버설 Windows 앱(UWP) 원격 디버깅에 대한 자세한 내용은 설치된 앱 패키지 디버그를 참조하세요.

요구 사항

원격 디버거는 Windows 7 이상 및 Windows Server 버전 Windows Server 2008 서비스 팩 2 이상에서 지원됩니다. 요구 사항 전체 목록은 요구 사항을 참조하세요.

참고

프록시를 통해 연결된 두 컴퓨터 간의 디버깅은 지원되지 않습니다. 대기 시간이 길거나 대역폭이 낮은 연결(예: 전화 접속 인터넷) 또는 해외 인터넷을 통해 디버그하는 것은 오류가 발생하거나 지나치게 느릴 수 있으므로 권장하지 않습니다.

원격 도구 다운로드 및 설치

디버그하려는 원격 디바이스 또는 서버에서(Visual Studio 머신 아님) 다음 표에 나온 링크를 통해 올바른 버전의 원격 도구를 다운로드하여 설치하세요.

  • 사용 중인 버전의 Visual Studio용 원격 도구의 최신 업데이트를 다운로드합니다. 이전 원격 도구 버전은 이후 Visual Studio 버전과 호환되지 않습니다. (예를 들어, Visual Studio 2019을 사용하는 경우 Visual Studio 2019용 원격 도구의 최신 업데이트를 다운로드합니다. 이 시나리오에서는 Visual Studio 2022용 원격 도구를 다운로드하지 마세요.)
  • 설치할 머신과 동일한 아키텍처를 가진 원격 도구를 다운로드합니다. 예를 들어 x64 운영 체제를 실행하는 원격 컴퓨터에서 x86 애플리케이션을 디버깅하려면 x64 원격 도구를 설치합니다. ARM64 운영 체제에서 x86, ARM 또는 x64 애플리케이션을 디버그하려면 ARM64 원격 도구를 설치합니다.
버전 링크 참고
Visual Studio 2022 원격 도구 모든 Visual Studio 2022 버전과 호환됩니다. 디바이스 운영 체제(x86, x64 또는 ARM64)와 일치하는 버전을 다운로드합니다. 이전 버전의 Windows Server에서 원격 도구 다운로드에 대한 도움말은 파일 다운로드 차단 해제를 참조하세요.
Visual Studio 2019 원격 도구 모든 Visual Studio 2019 버전과 호환됩니다. 디바이스 운영 체제(x86, x64 또는 ARM64)와 일치하는 버전을 다운로드합니다. 이전 버전의 Windows Server에서 원격 도구 다운로드에 대한 도움말은 파일 다운로드 차단 해제를 참조하세요.
Visual Studio 2017 원격 도구 모든 Visual Studio 2017 버전과 호환됩니다. 디바이스 운영 체제(x86, x64 또는 ARM64)와 일치하는 버전을 다운로드합니다. Windows Server에서 원격 도구 다운로드에 대한 도움말은 Unblock the file download(파일 다운로드 차단 해제)를 참조하세요.
Visual Studio 2015 원격 도구 Visual Studio 2015용 원격 도구는 My.VisualStudio.com에서 사용할 수 있습니다. 메시지가 표시되면 무료 Visual Studio Dev Essentials 프로그램에 가입하거나 Visual Studio 구독 ID로 로그인하세요. Windows Server에서 원격 도구 다운로드에 대한 도움말은 Unblock the file download(파일 다운로드 차단 해제)를 참조하세요.
Visual Studio 2013 원격 도구 Visual Studio 2013 설명서의 다운로드 페이지
Visual Studio 2012 원격 도구 Visual Studio 2012 설명서의 다운로드 페이지
버전 링크 참고
Visual Studio 2019 원격 도구 모든 Visual Studio 2019 버전과 호환됩니다. 디바이스 운영 체제(x86, x64 또는 ARM64)와 일치하는 버전을 다운로드합니다. Windows Server에서 원격 도구 다운로드에 대한 도움말은 Unblock the file download(파일 다운로드 차단 해제)를 참조하세요. 원격 도구 최신 버전의 경우 Visual Studio 2022 문서를 엽니다.
Visual Studio 2017 원격 도구 모든 Visual Studio 2017 버전과 호환됩니다. 디바이스 운영 체제(x86, x64 또는 ARM64)와 일치하는 버전을 다운로드합니다. Windows Server에서 원격 도구 다운로드에 대한 도움말은 Unblock the file download(파일 다운로드 차단 해제)를 참조하세요.
Visual Studio 2015 원격 도구 Visual Studio 2015용 원격 도구는 My.VisualStudio.com에서 사용할 수 있습니다. 메시지가 표시되면 무료 Visual Studio Dev Essentials 프로그램에 가입하거나 Visual Studio 구독 ID로 로그인하세요. Windows Server에서 원격 도구 다운로드에 대한 도움말은 Unblock the file download(파일 다운로드 차단 해제)를 참조하세요.
Visual Studio 2013 원격 도구 Visual Studio 2013 설명서의 다운로드 페이지
Visual Studio 2012 원격 도구 Visual Studio 2012 설명서의 다운로드 페이지

원격 도구를 설치하는 대신 msvsmon.exe를 원격 컴퓨터에 복사하여 원격 디버거를 실행할 수 있습니다. 그러나 원격 디버거 구성 마법사(rdbgwiz.exe)는 원격 도구를 설치하는 경우에만 사용할 수 있습니다. 원격 디버거를 서비스로 실행하려면 구성을 위해 마법사를 사용해야 할 수도 있습니다. 자세한 내용은 (선택 사항) 원격 디버거를 서비스로 구성을 참조하세요.

참고

  • ARM 디바이스에서 Windows 10 또는 이후 버전의 앱을 디버그하려면 최신 버전의 원격 도구에서 사용할 수 있는 ARM64를 사용합니다.
  • Windows RT 디바이스에서 Windows 10 앱을 디버그하려면 Visual Studio 2015 원격 도구 다운로드에서만 사용할 수 있는 ARM을 사용합니다.
  • ARM64 운영 체제에서 x64 앱을 디버그하려면 ARM64 원격 도구와 함께 설치된 x64 msvsmon.exe를 실행합니다.

일부 시나리오에서는 파일 공유에서 원격 디버거를 실행하는 것이 가장 효율적일 수 있습니다. 자세한 내용은 파일 공유에서 원격 디버거 실행을 참조하세요.

원격 디버거 설치

  1. 원격 컴퓨터의 시작 메뉴에서 원격 디버거를 찾아 시작합니다.

    원격 컴퓨터에 대한 관리 권한이 없는 경우 원격 디버거 앱을 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 선택합니다. 이와 같은 권한이 있는 경우 정상적으로 시작합니다.

    관리자 권한으로 실행 중인 프로세스에 연결하려는 경우 또는 IIS와 같은 다른 사용자 계정으로 실행 중인 경우에는 원격 디버거 앱을 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 선택합니다. 자세한 내용은 Run the remote debugger as an administrator(관리자 권한으로 원격 디버거 실행)를 참조하세요.

  2. 처음으로(또는 구성하기 전에) 원격 디버거를 시작할 때는 원격 디버깅 구성 마법사가 나타납니다.

    대부분의 시나리오에서 마법사의 Windows 방화벽 구성 페이지가 표시될 때까지 다음을 선택합니다.

    Screenshot of remote debugger configuration.

    Screenshot of remote debugger configuration.

    Windows 웹 서비스 API가 설치되어 있지 않으면(Windows Server 2008 R2에만 해당) 설치 단추를 선택합니다.

  3. 원격 도구를 사용하려는 네트워크 유형을 하나 이상 선택하세요. 컴퓨터가 도메인을 통해 연결된 경우 첫 번째 항목을 선택해야 합니다. 컴퓨터가 작업 그룹 또는 홈 그룹을 통해 연결된 경우 두 번째 또는 세 번째 항목을 적절하게 선택합니다.

    그런 다음 마침을 선택하여 원격 디버거를 시작합니다.

    다음으로, 원격 디버깅 구성을 선택하여 원격 디버거를 시작합니다.

  4. 구성이 완료되면 원격 디버거 창이 나타납니다.

    Screenshot of remote debugger window

    Screenshot of remote debugger window

    이제 원격 디버거가 연결을 기다리는 중입니다. 표시된 서버 이름과 포트 번호를 사용하여 Visual Studio에서 원격 연결 구성을 설정합니다.

원격 디버거를 중지하려면 파일>끝내기를 선택합니다. 시작 메뉴 또는 명령줄에서 다시 시작할 수 있습니다.

<Remote debugger installation directory>\msvsmon.exe

참고

추가 사용자를 위해 사용 권한을 추가하거나 원격 디버거의 인증 모드 또는 포트 번호를 변경해야 하는 경우 원격 디버거 구성을 참조하세요.

프로젝트 원격 디버그

디버거는 원격 컴퓨터에 Visual C# 또는 Visual Basic 데스크톱 애플리케이션을 배포할 수 없지만 다음과 같이 원격으로 계속 디버그할 수 있습니다. 다음 절차에서는 아래 그림에 표시된 것처럼 MJO-DL이라는 컴퓨터에서 디버그하려는 경우를 가정합니다.

  1. MyWpf라는 WPF 프로젝트를 만듭니다.

    WPF 대신 MAUI 앱을 원격으로 디버그하려는 경우 Windows에서 .NET MAUI 앱 원격 디버그를 참조하세요.

  2. 쉽게 도달할 수 있는 코드의 임의 위치에 중단점을 설정합니다.

    예를 들어 단추 처리기에 중단점을 설정할 수 있습니다. 이렇게 하려면 MainWindow.xaml을 열고 도구 상자로부터 단추 컨트롤을 추가한 다음 단추를 두 번 클릭하여 해당 처리기를 엽니다.

  3. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

  4. 속성 페이지에서 디버그 탭을 선택합니다.

    .NET Core 또는 .NET 5 버전을 대상으로 하는 C# 프로젝트의 경우, Visual Studio 2022를 시작으로 디버그 탭에서 디버그 시작 프로필 UI를 선택하여 원격 디버깅 설정을 구성합니다.

    Screenshot of the Debug launch profile UI in the Visual Studio Project Properties for C# and .NET.

    그렇지 않으면 디버그 탭에서 원격 디버그 설정을 직접 변경합니다.

    Screenshot of the Debug tab in the Visual Studio Project Properties. The Use remote machine property is set to 'MJO-DL:4022'.

  5. 작업 디렉터리 텍스트 상자가 비어 있는지 확인합니다.

  6. 원격 컴퓨터 사용을 선택하고 텍스트 상자에 해당 컴퓨터 이름:포트를 입력합니다. (포트 번호는 원격 디버거 창에 표시됩니다. 포트 번호는 각 버전의 Visual Studio에서 2씩 증가합니다).

    이 예제에서는 다음을 사용합니다.

    MJO-DL:4026 - Visual Studio 2022

    MJO-DL:4024 - Visual Studio 2019

  7. 네이티브 코드 디버깅 사용이 선택되지 않았는지 확인합니다.

  8. 프로젝트를 빌드합니다.

  9. Visual Studio 컴퓨터의 Debug 폴더와 동일한 경로에 해당되는 폴더를 원격 컴퓨터에 만듭니다(<source path>\MyWPF\MyWPF\bin\Debug).

  10. Visual Studio 컴퓨터에서 방금 빌드한 실행 파일을 원격 컴퓨터에서 새로 만든 폴더에 복사합니다.

    주의

    코드를 변경하거나 다시 빌드하지 않습니다(그렇지 않으면 이 단계를 반복해야 함). 원격 컴퓨터에 복사한 실행 파일은 로컬 소스 및 기호와 정확히 일치해야 합니다.

    프로젝트를 수동으로 복사하거나 XCopy, Robocopy, PowerShell 또는 기타 옵션을 사용할 수 있습니다.

  11. 원격 디버거가 대상 컴퓨터에서 실행되고 있는지 확인합니다. 그렇지 않은 경우 시작 메뉴에서 원격 디버거를 검색합니다. 원격 디버거 창은 다음과 같이 표시됩니다.

    Screenshot of remote debugger window for VS 2022.

    Screenshot of remote debugger window for VS 2019.

  12. Visual Studio에서 디버깅을 시작합니다(디버그 > 디버깅 시작 또는 F5 키).

  13. 메시지가 표시되면 네트워크 자격 증명을 입력하여 원격 컴퓨터에 연결합니다.

    필요한 자격 증명은 네트워크의 보안 구성에 따라 달라집니다. 예를 들어 도메인 컴퓨터에서는 도메인 이름 및 암호를 입력할 수 있습니다. 도메인이 아닌 컴퓨터에서는 컴퓨터 이름, 올바른 사용자 계정 이름(예: MJO-DL\name@something.com)을 올바른 암호와 함께 입력할 수 있습니다.

    WPF 애플리케이션의 주 창이 원격 컴퓨터에서 열려 있다고 표시됩니다.

  14. 필요한 경우 작업을 수행하여 중단점을 적중시킵니다. 중단점이 활성화된 것으로 표시되어야 합니다. 활성화되지 않은 경우 애플리케이션에 대한 기호가 로드되지 않은 것입니다. 다시 시도해보고 제대로 작동하지 않는 경우 기호 파일 및 Visual Studio의 기호 설정 이해에서 기호를 로드하는 방법과 기호를 문제 해결 방법을 자세히 알아보세요.

  15. Visual Studio 컴퓨터에서 실행이 중단점에서 중지된 것이 표시됩니다.

    애플리케이션에서 사용해야 하는 비코드 파일이 있는 경우 Visual Studio 프로젝트에 모두 포함해야 합니다. 추가 파일을 위한 프로젝트 폴더를 만듭니다(솔루션 탐색기에서 추가 > 새 폴더 클릭). 그런 다음, 폴더에 파일을 추가합니다(솔루션 탐색기에서 추가 > 기존 항목을 클릭한 다음, 파일 선택). 각 파일에 대한 속성 페이지에서 출력 디렉터리에 복사항상 복사로 설정합니다.

Windows에서 .NET MAUI 앱 원격 디버그

.NET MAUI 앱은 원격 컴퓨터에 복사하는 것이 아니라 배포 시 등록해야 하는 패키지된 앱입니다. 원격 디버그하려면 패키지되지 않은 버전의 앱을 배포할 수 있습니다.

다음 방법 중 하나를 사용하여 원격으로 디버그합니다.

  • CLI를 사용하여 패키지되지 않은 Windows용 .NET MAUI 앱 게시에 설명된 단계를 사용하여 패키지되지 않은 앱으로 원격 디바이스에 앱을 게시한 다음, 이 문서의 단계에 따라 원격으로 디버그합니다. (앱을 복사하는 단계를 건너뜁니다.)

  • 프로젝트에 대한 디버그 시작 프로필을 만드는 단계를 포함하여 이 문서의 단계를 따릅니다. 디버깅을 시작하기 전에 launchSettings.json 파일을 수동으로 편집하고 여기에 표시된 대로 commandNameProject 값을 MsixPackage로 바꿔야 합니다.

    "Remote Profile": {
      "commandName": "MsixPackage",
      "remoteDebugEnabled": true,
      "remoteDebugMachine": "170.200.20.22",
      "authenticationMode": "None"
    }
    

    디버깅을 시작하면 이 메서드는 먼저 패키지되지 않은 버전의 앱을 배포하고 시작합니다.

    참고 항목

    값을 MsixPackage로 변경한 후에는 디버그 시작 프로필 대화 상자에서 launchSettings.json을 편집할 수 없습니다.

원격 기호를 사용한 디버깅 설정

Visual Studio 컴퓨터에서 생성하는 기호를 사용하여 코드를 디버그할 수 있습니다. 로컬 기호를 사용하는 경우 원격 디버거의 성능이 훨씬 더 빠릅니다. 원격 기호를 사용해야 경우 원격 컴퓨터에서 기호를 찾도록 원격 디버깅 모니터에 지시해야 합니다.

다음 msvsmon 명령줄 스위치를 통해 관리 코드에 원격 기호를 사용할 수 있습니다. Msvsmon /FallbackLoadRemoteManagedPdbs

자세한 내용은 원격 디버깅 도움말을 참조하세요(원격 디버거 창에서 F1 키를 누르거나 도움말 > 사용법 클릭).