다음을 통해 공유


PowerShell 개발에 Visual Studio 코드 사용

VS Code(Visual Studio Code )는 Microsoft의 플랫폼 간 스크립트 편집기입니다. PowerShell 확장과 함께 풍부한 대화형 스크립트 편집 환경을 제공하여 신뢰할 수 있는 PowerShell 스크립트를 더 쉽게 작성할 수 있습니다. PowerShell 확장을 사용하는 Visual Studio Code는 PowerShell 스크립트를 작성하는 데 권장되는 편집기입니다.

다음 PowerShell 버전을 지원합니다.

  • PowerShell 7.2 이상(Windows, macOS 및 Linux)
  • .NET Framework 4.8을 사용하는 Windows PowerShell 5.1(Windows 전용)

참고 항목

Visual Studio Code는 Visual Studio와는 다릅니다.

시작하기

시작하기 전에 PowerShell이 시스템에 있는지 확인합니다. Windows, macOS 및 Linux에서 최신 작업을 수행하려면 다음 링크를 참조하세요.

기존 Windows PowerShell 워크로드의 경우 Windows PowerShell 설치를 참조하세요.

Important

Windows PowerShell ISE는 Windows에서 계속 사용할 수 있습니다. 하지만 더 이상 활성 기능 개발에 필요하지 않습니다. ISE는 PowerShell 5.1 이상에서만 작동합니다. Windows의 구성 요소로서 보안 및 우선 순위가 높은 서비스 수정에 대해 공식적으로 계속 지원됩니다. Windows에서 ISE를 제거할 계획은 없습니다.

VS Code 및 PowerShell 확장 설치

  1. Visual Studio Code를 설치합니다. 자세한 내용은 Visual Studio Code 설정 개요를 참조하세요.

    각 플랫폼에 대한 설치 지침은 다음과 같습니다.

  2. PowerShell 확장을 설치합니다.

    1. 콘솔에 입력하거나 code-insiders Visual Studio Code 참가자를 code 설치한 경우 VS Code 앱을 시작합니다.
    2. Ctrl P를 눌러 Windows 또는 Linux에서 빠른 열기를+시작합니다. macOS에서 Cmd+P를 누릅니다.
    3. 빠른 열기에서 Enter 키를 입력 ext install powershell 하고 누릅니 .
    4. 사이드바에 확장 보기가 열립니다. Microsoft에서 PowerShell 확장을 선택합니다.
    5. Microsoft의 PowerShell 확장에서 설치 단추를 클릭합니다.
    6. 설치 후 설치 단추가 다시 로드로 바뀌면 다시 로드를 클릭합니다.
    7. VS Code가 다시 로드되면 편집할 준비가 된 것입니다.

예를 들어 새 파일을 만들려면 파일 > 새로 만들기를 클릭합니다. 저장하려면 파일 > 저장을 클릭한 후 파일 이름을 제공합니다(예: HelloWorld.ps1). 파일을 닫으려면 파일 이름 옆에 있는 X를 클릭합니다. VS Code를 종료하려면 파일 > 끝내기를 클릭합니다.

제한된 시스템에 PowerShell 확장 설치

일부 시스템은 모든 코드 서명의 유효성 검사를 요구하도록 설정됩니다. 다음과 같은 오류가 발생할 수 있습니다.

Language server startup failed.

이 문제는 Windows 그룹 정책에 의해 PowerShell의 실행 정책을 설정할 때 발생할 수 있습니다. VS Code용 PowerShell 편집기 서비스 및 PowerShell 확장을 수동으로 승인하려면 PowerShell 프롬프트를 열고 다음 명령을 실행합니다.

Import-Module $HOME\.vscode\extensions\ms-vscode.powershell*\modules\PowerShellEditorServices\PowerShellEditorServices.psd1

이 신뢰되지 않은 게시자가 서명한 소프트웨어를 실행하시겠습니까?가 포함된 메시지가 표시됩니다. 파일을 실행하려면 A을(를) 입력합니다. 그런 다음, VS Code를 열고 PowerShell 확장이 제대로 작동하는지 확인합니다. 그래도 시작하는 데 문제가 있으면 GitHub 문제에서 알려주세요.

확장에 사용할 PowerShell 버전 선택

PowerShell이 Windows PowerShell과 나란히 설치되면 이제 PowerShell 확장과 함께 특정 버전의 PowerShell을 사용할 수 있습니다. 이 기능은 다른 운영 체제에서 몇 가지 잘 알려진 경로를 확인하여 PowerShell의 설치 위치를 검색합니다.

다음 단계에 따라 해당 버전을 선택합니다.

  1. Windows 또는 Linux에서 Ctrl+Shift+P를 눌러 명령 팔레트를 엽니다. macOS에서 Cmd Shift+P+사용합니다.
  2. 세션을 검색 합니다.
  3. PowerShell: 세션 메뉴 표시를 클릭합니다.
  4. 목록에서 사용하려는 PowerShell 버전을 선택합니다.

일반적이지 않은 위치에 PowerShell을 설치한 경우 처음에 PowerShell이 세션 메뉴에 표시되지 않을 수 있습니다. 아래 설명된 대로 사용자 지정 경로를 추가하여 세션 메뉴를 확장할 수 있습니다 .

PowerShell 세션 메뉴는 상태 표시줄의 오른쪽 아래에 있는 {} 아이콘에서 액세스할 수도 있습니다. 이 아이콘을 마우스로 가리키거나 선택하면 세션 메뉴의 바로 가기와 작은 핀 아이콘이 표시됩니다. 고정 아이콘을 선택하면 버전 번호가 상태 표시줄에 추가됩니다. 버전 번호는 클릭 횟수가 적은 세션 메뉴의 바로 가기입니다.

참고 항목

버전 번호를 고정하면 1.65 이전 버전의 VS Code에서 확장의 동작이 복제됩니다. VS Code의 1.65 릴리스는 PowerShell 확장에서 사용하는 API를 변경하고 언어 확장에 대한 상태 표시줄을 표준화했습니다.

Visual Studio Code에 대한 구성 설정

먼저 VS Code에서 설정을 변경하는 방법을 잘 모르는 경우 Visual Studio Code의 설정 설명서를 읽는 것이 좋습니다.

설명서를 읽은 후 .에서 settings.json구성 설정을 추가할 수 있습니다.

{
    "editor.renderWhitespace": "all",
    "editor.renderControlCharacters": true,
    "files.trimTrailingWhitespace": true,
    "files.encoding": "utf8bom",
    "files.autoGuessEncoding": true
}

이러한 설정이 모든 파일 형식에 영향을 주지 않으려는 경우 VS Code에서 언어별 구성을 허용할 수도 있습니다. 필드에 설정을 배치하여 언어별 설정을 만듭니다 [<language-name>] . 예시:

{
    "[powershell]": {
        "files.encoding": "utf8bom",
        "files.autoGuessEncoding": true
    }
}

VS Code의 파일 인코딩에 대한 자세한 내용은 파일 인코딩 이해를 참조하세요. 또한 PowerShell 편집용 VS Code를 구성하는 방법에 대한 다른 팁을 보려면 VS Code에서 ISE 환경을 복제본(replica) 지정하는 방법을 검사.

세션 메뉴에 고유한 PowerShell 경로 추가

Visual Studio Code 설정을powershell.powerShellAdditionalExePaths 통해 세션 메뉴에 다른 PowerShell 실행 경로를 추가할 수 있습니다.

GUI를 사용하여 이 작업을 수행할 수 있습니다.

  1. 명령 팔레트에서 사용자 설정 열기를 검색하여 선택합니다. 또는 Windows나 Linux Ctrl+,에서 바로 가기 키를 사용합니다. macOS에서 Cmd+,를 사용합니다.
  2. 설정 편집기에서 PowerShell 추가 Exe 경로를 검색합니다.
  3. Add Item(항목 추가)을 클릭합니다.
  4. (항목 아래)의 경우 이 추가 PowerShell 설치의 이름을 선택합니다.
  5. ( 아래)의 경우 실행 파일 자체에 대한 절대 경로를 제공합니다.

원하는 만큼 추가 경로를 추가할 수 있습니다. 추가된 항목은 지정된 키를 이름으로 사용하여 세션 메뉴에 표시됩니다.

또는 settings.jsonpowershell.powerShellAdditionalExePaths 개체에 키-값 쌍을 추가할 수 있습니다.

{
    "powershell.powerShellAdditionalExePaths": {
        "Downloaded PowerShell": "C:/Users/username/Downloads/PowerShell/pwsh.exe",
        "Built PowerShell": "C:/Users/username/src/PowerShell/src/powershell-win-core/bin/Debug/net6.0/win7-x64/publish/pwsh.exe"
    },
}

참고 항목

확장 버전 2022.5.0 이전에는 이 설정이 필수 키 exePathversionName이 있는 개체 목록이었습니다. GUI를 통한 구성을 지원하기 위해 호환성이 손상되는 변경이 도입되었습니다. 이전에 이 설정을 구성한 경우 새 형식으로 변환하세요. 지정된 versionName 값은 이제 이며, 지정된 exePath 값은 이제 입니다. 값을 재설정하고 설정 인터페이스를 사용하여 이 작업을 더 쉽게 수행할 수 있습니다.

기본 PowerShell 버전을 설정하려면 powershell.powerShellDefaultVersion 값을 세션 메뉴에 표시된 텍스트(키에 사용된 텍스트)로 설정합니다.

{
    "powershell.powerShellAdditionalExePaths": {
        "Downloaded PowerShell": "C:/Users/username/Downloads/PowerShell/pwsh.exe",
    },
    "powershell.powerShellDefaultVersion": "Downloaded PowerShell",
}

이 설정을 구성한 후 VS Code를 다시 시작하거나 명령 팔레트에서 현재 VS Code 창을 다시 로드하려면 다음을 입력합니다Developer: Reload Window.

세션 메뉴를 열면 이제 추가 PowerShell 설치가 표시됩니다.

원본에서 PowerShell을 빌드하는 경우 PowerShell의 로컬 빌드를 테스트하는 좋은 방법입니다.

Debugging with Visual Studio Code(Visual Studio Code를 사용한 디버깅)

작업 영역 없음 디버깅

VS Code 버전 1.9 이상에서는 PowerShell 스크립트가 포함된 폴더를 열지 않고 PowerShell 스크립트를 디버그할 수 있습니다.

  1. 파일 > 파일 열기...를 사용하여 PowerShell 스크립트 파일 열기
  2. 중단점 설정 - 줄을 선택한 다음 F9 키를 누릅니 다.
  3. F5 키를 눌러 디버깅 시작

디버거, 단계, 다시 시작, 디버깅 중지로 나눌 수 있는 디버그 작업 창이 표시됩니다.

작업 영역 디버깅

작업 영역 디버깅은 폴더 열기를 사용하여 파일 메뉴에서 연 폴더의 컨텍스트에서 디버깅을 의미합니다. 열려 있는 폴더는 일반적으로 PowerShell 프로젝트 폴더 또는 Git 리포지토리의 루트입니다. 작업 영역 디버깅을 사용하면 현재 열려 있는 파일을 디버깅하는 것 외에 여러 디버그 구성을 정의할 수 있습니다.

디버그 구성 파일을 만들려면 다음 단계를 수행합니다.

  1. Ctrl+Shift+D눌러 Windows 또는 Linux에서 디버그 보기를 엽니다. macOS에서 Cmd Shift D+누릅니다.+

  2. launch.json 파일 만들기 링크를 클릭합니다.

  3. 환경 선택 프롬프트에서 PowerShell을 선택합니다.

  4. 사용하려는 디버깅 유형을 선택합니다.

    • 현재 파일 시작 - 현재 활성 편집기 창에서 파일 시작 및 디버그
    • 스크립트 시작 - 지정된 파일 또는 명령을 시작하고 디버그합니다.
    • 대화형 세션 - 통합 콘솔에서 실행되는 디버그 명령
    • 연결 - 실행 중인 PowerShell 호스트 프로세스에 디버거 연결

VS Code는 디버그 구성을 저장할 디렉터리와 파일을 .vscode\launch.json 작업 영역 폴더의 루트에 만듭니다. 파일이 Git 리포지토리에 있는 경우 일반적으로 파일을 커밋 launch.json 하려고 합니다. launch.json 파일의 내용은 다음과 같습니다.

{
  "version": "0.2.0",
  "configurations": [
      {
          "type": "PowerShell",
          "request": "launch",
          "name": "PowerShell Launch (current file)",
          "script": "${file}",
          "args": [],
          "cwd": "${file}"
      },
      {
          "type": "PowerShell",
          "request": "attach",
          "name": "PowerShell Attach to Host Process",
          "processId": "${command.PickPSHostProcess}",
          "runspaceId": 1
      },
      {
          "type": "PowerShell",
          "request": "launch",
          "name": "PowerShell Interactive Session",
          "cwd": "${workspaceRoot}"
      }
  ]
}

이 파일은 일반적인 디버그 시나리오를 나타냅니다. 편집기에서 이 파일을 열면 구성 추가... 단추가 표시됩니다. 이 단추를 클릭하여 더 많은 PowerShell 디버그 구성을 추가할 수 있습니다. 추가할 유용한 구성 중 하나는 PowerShell: 스크립트 시작입니다. 이 구성을 사용하면 편집기에서 활성 상태인 파일에 관계없이 F5 키를 누를 때마다 사용되는 선택적 인수가 포함된 파일을 지정할 수 있습니다.

디버그 구성이 설정된 후에 디버그 세션 중에 사용하려는 구성을 선택할 수 있습니다. 디버그 보기의 도구 모음에서 디버그 구성 드롭다운에서 구성을 선택합니다.

PowerShell 확장 문제 해결

PowerShell 스크립트 개발을 위해 VS Code를 사용하는 데 문제가 발생하는 경우 GitHub의 문제 해결 가이드 를 참조하세요.

유용한 리소스

VS Code용 PowerShell 확장을 사용하는 데 도움이 될 수 있는 몇 가지 비디오 및 블로그 게시물이 있습니다.

비디오

블로그 게시물

PowerShell 확장 프로젝트 소스 코드

PowerShell 확장의 소스 코드는 GitHub에서 찾을 수 있습니다.

기여에 관심이 있는 경우 끌어오기 요청은 매우 감사합니다. GitHub의 개발자 설명서 에 따라 시작합니다.