다음을 통해 공유


PowerShell 개발에 Visual Studio Code 사용

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 설치을 참조하세요.

중요하다

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을 입력하여 VS Code 앱을 시작하거나, Visual Studio Code 인사이더를 설치한 경우 code-insiders을 입력하십시오.
    2. Ctrl+P를 눌러 Windows 또는 Linux에서 빠른 열기을 시작하세요. macOS에서 cmd+P누릅니다.
    3. 빠른 열기에서 ext install powershell 입력하고 Enter누릅니다.
    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. Ctrl+Shift+P사용하여 Windows 또는 Linux에서 명령 팔레트 엽니다. macOS에서 Cmd+Shift+P사용합니다.
  2. 세션검색합니다.
  3. PowerShell: 세션 메뉴 표시를 클릭합니다.
  4. 목록에서 사용하려는 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 환경을 복제하는 방법을 확인하세요.

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

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

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

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

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

settings.json객체의 powershell.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의 로컬 빌드를 테스트하는 좋은 방법입니다.

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의 개발자 설명서를 참고하여 시작하십시오.