Visual Studio에서 C# 또는 Visual Basic 프로젝트 원격 디버깅
다른 컴퓨터에 배포된 Visual Studio 애플리케이션을 디버그하려면 앱을 배포한 컴퓨터에 원격 도구를 설치 및 실행하고 Visual Studio에서 원격 컴퓨터에 연결하도록 프로젝트를 구성한 다음 앱을 실행합니다.
원격 디버깅 UWP(유니버설 Windows 앱)에 대한 정보는 설치된 앱 패키지 디버그을(를) 참고하십시오.
요구 사항
원격 디버거는 Windows 7 이상 및 Windows Server 2008 서비스 팩 2부터 Windows Server 버전에서 지원됩니다. 요구 사항의 전체 목록은 요구 사항참조하세요.
메모
프록시를 통해 연결된 두 컴퓨터 간의 디버깅은 지원되지 않습니다. 전화 접속 인터넷과 같이 대기 시간이 길거나 대역폭이 낮은 연결을 통해 또는 국가/지역에서 인터넷을 통해 디버깅하는 것은 권장되지 않으며 실패하거나 허용할 수 없을 정도로 느려질 수 있습니다.
원격 도구 다운로드 및 설치
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(AMD64) 또는 ARM64)와 일치하는 버전을 다운로드합니다. 이전 버전의 Windows Server에서 원격 도구 다운로드에 대한 도움말은 파일 다운로드 차단 해제를 참조하세요. |
Visual Studio 2019 | 원격 도구 | Visual Studio 2019용 원격 도구는 My.VisualStudio.com 사용할 수 있습니다. 메시지가 표시되면 무료 Visual Studio Dev Essentials 프로그램에 가입하거나 Visual Studio 구독 ID로 로그인합니다. 디바이스 운영 체제(x86, x64(AMD64) 또는 ARM64)와 일치하는 버전을 다운로드합니다. 이전 버전의 Windows Server에서 원격 도구 다운로드에 대한 도움말은 파일 다운로드 차단 해제를 참조하세요. |
Visual Studio 2017 | 원격 도구 | Visual Studio 2017용 원격 도구는 My.VisualStudio.com 사용할 수 있습니다. 메시지가 표시되면 무료 Visual Studio Dev Essentials 프로그램에 가입하거나 Visual Studio 구독 ID로 로그인합니다. 디바이스 운영 체제(x86, x64(AMD64) 또는 ARM64)와 일치하는 버전을 다운로드합니다. Windows Server에서 원격 도구 다운로드에 대한 도움말은 파일 다운로드 차단 해제를 참조하세요. |
Visual Studio 2015 | 원격 도구 | Visual Studio 2015용 원격 도구는 My.VisualStudio.com 사용할 수 있습니다. 메시지가 표시되면 무료 Visual Studio Dev Essentials 프로그램에 가입하거나 Visual Studio 구독 ID로 로그인합니다. Windows Server에서 원격 도구 다운로드에 대한 도움말은 파일 다운로드 차단 해제를 참조하세요. |
Visual Studio 2013 | 원격 도구 | Visual Studio 2013 설명서의 다운로드 페이지 |
Visual Studio 2012 | 원격 도구 | Visual Studio 2012 설명서의 다운로드 페이지 |
버전 | 링크 | 노트 |
---|---|---|
Visual Studio 2019 | 원격 도구 | 모든 Visual Studio 2019 버전과 호환 가능합니다. 디바이스 운영 체제(x86, x64(AMD64) 또는 ARM64)와 일치하는 버전을 다운로드합니다. Windows Server에서 원격 도구 다운로드에 대한 도움말은 파일 다운로드 차단 해제를 참조하세요. 최신 버전의 원격 도구를 확인하려면 Visual Studio 2022 문서를 참조하세요. |
Visual Studio 2017 | 원격 도구 | 모든 Visual Studio 2017 버전과 호환 가능합니다. 디바이스 운영 체제(x86, x64(AMD64) 또는 ARM64)와 일치하는 버전을 다운로드합니다. Windows Server에서 원격 도구 다운로드에 대한 도움말은 파일 다운로드 차단 해제를 참조하세요. |
Visual Studio 2015 | 원격 도구 | Visual Studio 2015용 원격 도구는 My.VisualStudio.com 사용할 수 있습니다. 메시지가 표시되면 무료 Visual Studio Dev Essentials 프로그램에 가입하거나 Visual Studio 구독 ID로 로그인합니다. Windows Server에서 원격 도구 다운로드에 대한 도움말은 파일 다운로드 차단 해제를 참조하세요. |
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 실행합니다.
팁
일부 시나리오에서는 파일 공유에서 원격 디버거를 실행하는 것이 가장 효율적일 수 있습니다. 자세한 내용은 파일 공유 원격 디버거 실행참조하세요.
원격 디버거 설정
원격 컴퓨터의 시작 메뉴에서 원격 디버거 찾아서 시작합니다.
원격 컴퓨터에 대한 관리 권한이 없는 경우 원격 디버거 앱을 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행 선택합니다. 그렇지 않으면 정상적으로 시작합니다.
관리자 권한으로 실행 중이거나 다른 사용자 계정(예: IIS)에서 실행되는 프로세스에 연결하려는 경우 원격 디버거 앱을 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행 선택합니다. 자세한 내용은 원격 디버거를 관리자 권한으로 실행합니다.
원격 디버거를 처음 시작할 때(또는 구성하기 전에) 원격 디버깅 구성 마법사가 나타납니다.
대부분의 시나리오에서는 마법사의 Windows 방화벽 구성 페이지로 이동될 때까지 다음 선택합니다.
원격 디버거 구성의 스크린샷 원격 디버거 구성Remote Debugger configuration
원격 디버거 구성의 스크린샷 원격 디버거 구성Remote Debugger configuration
Windows Server 2008 R2에서만 발생하는 Windows Web Services API가 설치되지 않은 경우 설치 단추를 선택합니다.
원격 도구를 사용하려는 네트워크 유형을 하나 이상 선택합니다. 컴퓨터가 도메인을 통해 연결된 경우 첫 번째 항목을 선택해야 합니다. 컴퓨터가 작업 그룹 또는 홈 그룹을 통해 연결된 경우 두 번째 또는 세 번째 항목을 적절하게 선택합니다.
그런 다음 마침 선택하여 원격 디버거를 시작합니다.
다음으로, 원격 디버깅 구성을 선택하여 원격 디버거를 시작합니다.
구성이 완료되면 원격 디버거 창이 나타납니다.
스크린샷
스크린샷
이제 원격 디버거가 연결을 기다리고 있습니다. 표시된 서버 이름 및 포트 번호를 사용하여 Visual Studio에서 원격 연결 구성을 설정합니다.
원격 디버거를 중지하려면 파일>종료선택합니다. 시작 메뉴 또는 명령줄에서 다시 시작할 수 있습니다.
<Remote debugger installation directory>\msvsmon.exe
메모
추가 사용자에 대한 권한을 추가하거나, 인증 모드를 변경하거나, 원격 디버거에 대한 포트 번호를 변경해야 하는 경우 원격 디버거구성을 참조하세요.
프로젝트 원격 디버그
디버거는 Visual C# 또는 Visual Basic 데스크톱 애플리케이션을 원격 컴퓨터에 배포할 수 없지만 다음과 같이 원격으로 디버그할 수 있습니다. 다음 절차에서는 아래 그림과 같이 MJO-DL컴퓨터에서 디버그하려고 합니다.
MyWpfWPF 프로젝트를 생성하세요.
WPF 대신 MAUI 앱을 원격 디버그하려는 경우 Windows .NET MAUI 앱을 원격 디버그하는참조하세요.
쉽게 연결할 수 있는 코드의 어딘가에 중단점을 설정합니다.
예를 들어 단추 처리기에서 중단점을 설정할 수 있습니다. 이렇게 하려면 MainWindow.xaml을 열고 도구 상자에서 단추 컨트롤을 추가한 다음 단추를 두 번 클릭하여 처리기를 엽니다.
솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성선택합니다.
속성 페이지에서 디버그 탭을 선택합니다.
.NET Core 또는 .NET 5+를 대상으로 하는 C# 프로젝트의 경우 Visual Studio 2022부터 디버그 탭에서 디버그 시작 프로필 UI 선택하여 원격 디버깅 설정을 구성합니다.
그렇지 않으면 .NET Framework의 경우 디버그 탭에서 직접 원격 디버그 설정을 변경합니다.
작업 디렉터리 텍스트 상자가 비어 있는지 확인합니다.
원격 컴퓨터을 선택하고 텍스트 상자에 yourmachinename:port 을 입력합니다. (포트 번호는 원격 디버거 창에 표시됩니다. Visual Studio의 각 버전에서 포트 번호가 2씩 증가합니다).
이 예제에서는 다음을 사용합니다.
MJO-DL:4026 Visual Studio 2022에서
Visual Studio 2019에서 MJO-DL:4024
네이티브 코드 디버깅 사용하도록 설정하지 않았는지 확인합니다.
프로젝트를 빌드합니다.
원격 컴퓨터에 Visual Studio 컴퓨터의 디버그 폴더와 동일한 경로인 폴더를 만듭니다. <원본 경로>\MyWPF\MyWPF\bin\Debug.
Visual Studio 컴퓨터에서 방금 빌드한 실행 파일을 원격 컴퓨터에서 새로 만든 폴더로 복사합니다.
주의
코드를 변경하거나 다시 빌드하지 마세요(또는 이 단계를 반복해야 함). 원격 컴퓨터에 복사한 실행 파일은 로컬 원본 및 기호와 정확히 일치해야 합니다.
프로젝트를 수동으로 복사하거나 XCopy, Robocopy, PowerShell 또는 기타 옵션을 사용할 수 있습니다.
원격 디버거가 대상 컴퓨터에서 실행되고 있는지 확인합니다(그렇지 않은 경우 시작 메뉴에서 원격 디버거 검색). 원격 디버거 창은 다음과 같습니다.
Visual Studio에서 디버깅(디버그 > 디버깅 시작또는 F5 )을 시작합니다.
메시지가 표시되면 네트워크 자격 증명을 입력하여 원격 컴퓨터에 연결합니다.
필요한 자격 증명은 네트워크의 보안 구성에 따라 달라집니다. 예를 들어 도메인 컴퓨터에서 도메인 이름과 암호를 입력할 수 있습니다. 도메인이 아닌 컴퓨터에서 올바른 암호와 함께 컴퓨터 이름 및 유효한 사용자 계정 이름(예: MJO-DL\name@something.com)을 입력할 수 있습니다.
원격 컴퓨터에서 WPF 애플리케이션의 주 창이 열려 있는 것을 볼 수 있습니다.
필요한 경우 중단점을 달성하기 위한 조치를 취합니다. 중단점이 활성 상태인 것을 확인해야 합니다. 그렇지 않은 경우 애플리케이션의 기호가 로드되지 않았습니다. 다시 시도하고, 그것이 작동하지 않으면 기호를 로드하는 방법과 문제 해결에 대한 정보를 기호 파일 이해 및 Visual Studio의 기호 설정에서 가져오세요.
Visual Studio 컴퓨터에서 중단점에서 실행이 중지된 것을 볼 수 있습니다.
애플리케이션에서 사용해야 하는 비코드 파일이 있는 경우 Visual Studio 프로젝트에 포함해야 합니다. 추가 파일에 대한 프로젝트 폴더를 만듭니다(솔루션 탐색기추가 > 새 폴더클릭). 그런 다음 폴더에 파일을 추가합니다(솔루션 탐색기추가 > 기존 항목클릭한 다음 파일을 선택합니다.) 각 파일에 대한 속성 페이지에서 출력 디렉터리 복사를 항상 설정합니다.
Windows에서 .NET MAUI 앱 원격 디버그
.NET MAUI 앱은 원격 컴퓨터에 복사하는 것이 아니라 배포 시 등록해야 하는 패키지된 앱입니다. 원격 디버그하려면 패키지되지 않은 버전의 앱을 배포할 수 있습니다.
다음 방법 중 하나를 사용하여 원격 디버그합니다.
CLI를 사용하여 Windows패키지되지 않은 .NET MAUI 앱을 게시하는 단계를 사용하여 패키지되지 않은 앱으로 원격 디바이스에 앱을 게시한 다음 이 문서의 단계에 따라 원격 디버그합니다. (앱을 복사하는 단계를 건너뜁니다.)
프로젝트에 대한 디버그 시작 프로필을 만드는 단계를 포함하여 이 문서의 단계를 따릅니다. 디버깅을 시작하기 전에 commandName 값을 다음과 같이
Project
바꿔서MsixPackage
파일을 수동으로 편집합니다."Remote Profile": { "commandName": "MsixPackage", "remoteDebugEnabled": true, "remoteDebugMachine": "170.200.20.22", "authenticationMode": "None" }
디버깅을 시작하면 이 메서드는 먼저 패키지되지 않은 버전의 앱을 배포하고 시작합니다.
메모
값을 변경한 후에는 디버그 시작 프로필 대화 상자에서
MsixPackage
편집할 수 없습니다.
원격 기호를 사용하여 디버깅 설정
Visual Studio 컴퓨터에서 생성한 기호를 사용하여 코드를 디버그할 수 있어야 합니다. 로컬 기호를 사용하는 경우 원격 디버거의 성능이 훨씬 향상됩니다. 원격 기호를 사용해야 하는 경우 원격 디버깅 모니터에 원격 컴퓨터에서 기호를 찾도록 지시해야 합니다.
다음 msvsmon 명령줄 스위치를 사용하여 관리 코드에 원격 기호를 사용할 수 있습니다. Msvsmon /FallbackLoadRemoteManagedPdbs
자세한 내용은 원격 디버깅 도움말을 참조하세요(원격 디버거 창에서 F1 누르거나 도움말 > 사용클릭).
관련 콘텐츠
- Visual Studio에서 디버깅
- 먼저 디버거 살펴보기
- 원격 디버깅을 위한 Windows 방화벽 구성
- 원격 디버거 포트 할당
- ASP.NET 원격 디버깅 IIS 원격 컴퓨터에서
- 원격 디버깅 오류 및 문제 해결