다음을 통해 공유


.NET 도구를 관리하는 방법

이 문서는 .NET Core 2.1 SDK 이상 버전에 적용됩니다 ✔️.

.NET 도구는 콘솔 애플리케이션을 포함하는 특수 NuGet 패키지입니다. 다음과 같은 방법으로 컴퓨터에 도구를 설치할 수 있습니다.

  • 전역 도구로 사용합니다.

    도구 이진 파일은 PATH 환경 변수에 추가되는 기본 디렉터리에 설치됩니다. 해당 위치를 지정하지 않고 컴퓨터의 디렉터리에서 도구를 호출할 수 있습니다. 도구의 한 버전은 컴퓨터의 모든 디렉터리에 사용됩니다.

  • 사용자 지정 위치(도구 경로 도구라고도 함)의 전역 도구입니다.

    도구 이진 파일은 지정한 위치에 설치됩니다. 디렉터리에 명령 이름을 제공하거나 PATH 환경 변수에 디렉터리를 추가하여 설치 디렉터리에서 도구를 호출할 수 있습니다. 도구의 한 버전은 컴퓨터의 모든 디렉터리에 사용됩니다.

  • 로컬 도구로(.NET Core SDK 3.0 이상 버전에 적용됨)

    도구 이진 파일은 기본 디렉터리에 설치됩니다. 설치 디렉터리 또는 해당 하위 디렉터리에서 도구를 호출할 수 있습니다. 서로 다른 디렉터리에서 동일한 도구의 다른 버전을 사용할 수 있습니다.

    .NET CLI는 매니페스트 파일을 사용하여 디렉터리에 로컬로 설치된 도구를 추적합니다. 매니페스트 파일이 소스 코드 리포지토리의 루트 디렉터리에 저장되면 기여자는 리포지토리를 복제하고 단일 .NET CLI 명령을 호출하여 매니페스트 파일에 나열된 모든 도구를 설치할 수 있습니다.

중요합니다

.NET 도구는 완전 신뢰로 실행됩니다. 작성자를 신뢰하지 않는 한 .NET 도구를 설치하지 마세요.

.NET이 Snap을 통해 설치된 경우 .NET 도구가 제대로 작동하지 않을 수 있습니다.

도구 찾기

도구를 찾는 몇 가지 방법은 다음과 같습니다.

작성자 및 통계 확인

.NET 도구는 완전 신뢰로 실행되므로 강력할 수 있으며 전역 도구는 PATH 환경 변수에 추가됩니다. 신뢰하지 않는 사용자로부터 도구를 다운로드하지 마세요.

도구가 NuGet에서 호스트되는 경우 도구를 검색하여 작성자와 통계를 확인할 수 있습니다.

전역 도구 설치

도구를 전역 도구로 설치하려면 다음 예제와 같이 dotnet 도구 설치 또는 --global 옵션을 사용합니다-g.

dotnet tool install -g dotnetsay

출력은 다음 예제와 유사하게 도구 및 설치된 버전을 호출하는 데 사용되는 명령을 보여줍니다.

You can invoke the tool using the following command: dotnetsay
Tool 'dotnetsay' (version '2.1.4') was successfully installed.

비고

기본적으로 설치할 .NET 이진 파일의 아키텍처는 현재 실행 중인 OS 아키텍처를 나타냅니다. 다른 OS 아키텍처를 지정하려면 dotnet 도구 설치, --arch 옵션을 참조하세요.

도구의 이진 파일의 기본 위치는 운영 체제에 따라 달라집니다.

운영 체제 경로
Linux/macOS $HOME/.dotnet/tools
윈도우즈 %USERPROFILE%\.dotnet\tools

이 위치는 SDK가 처음 실행될 때 사용자의 경로에 추가됩니다. 따라서 도구 위치를 지정하지 않고 모든 디렉터리에서 전역 도구를 호출할 수 있습니다.

도구 액세스는 컴퓨터 전역이 아닌 사용자별 액세스입니다. 전역 도구는 도구를 설치한 사용자만 사용할 수 있습니다.

사용자 지정 위치에 전역 도구 설치

사용자 지정 위치에 도구를 전역 도구로 설치하려면 다음 예제와 같이 dotnet 도구 설치 옵션을 사용합니다--tool-path.

Windows에서:

dotnet tool install dotnetsay --tool-path c:\dotnet-tools

Linux 또는 macOS에서:

dotnet tool install dotnetsay --tool-path ~/bin

.NET SDK는 PATH 환경 변수에 이 위치를 자동으로 추가하지 않습니다. 도구 경로 도구를 호출하려면 다음 방법 중 하나를 사용하여 명령을 사용할 수 있는지 확인해야 합니다.

  • PATH 환경 변수에 설치 디렉터리를 추가합니다.
  • 도구를 호출할 때 도구의 전체 경로를 지정합니다.
  • 설치 디렉터리 내에서 도구를 호출합니다.

로컬 도구 설치

.NET Core 3.0 SDK 이상에 적용됩니다.

로컬 액세스 전용 도구(현재 디렉터리 및 하위 디렉터리용)를 설치하려면 도구 매니페스트 파일에 도구를 추가해야 합니다. 도구 매니페스트 파일을 만들려면 다음 명령을 실행합니다 dotnet new tool-manifest .

dotnet new tool-manifest

이 명령은.config 디렉터리 아래에 dotnet-tools.json 매니페스트 파일을 만듭니다. 매니페스트 파일에 로컬 도구를 추가하려면 다음 예제와 같이 dotnet 도구 설치 명령을 사용하고 옵션 및 --tool-path 옵션을 생략--global 합니다.

경고

도구 매니페스트 파일이 제어된 위치에 저장되어 있는지 확인합니다. .NET CLI는 도구 dotnet tool run 매니페스트의 내용을 기반으로 로컬 도구를 시작합니다. 매니페스트가 신뢰할 수 없는 당사자에 의해 수정되면 CLI에서 악성 코드를 실행할 수 있습니다.

dotnet tool install dotnetsay

명령 출력은 다음 예제와 유사하게 새로 설치된 도구가 있는 매니페스트 파일을 보여줍니다.

You can invoke the tool from this directory using the following command:
dotnet tool run dotnetsay
Tool 'dotnetsay' (version '2.1.4') was successfully installed.
Entry is added to the manifest file /home/name/botsay/.config/dotnet-tools.json.

다음 예제에서는 두 개의 로컬 도구가 설치된 매니페스트 파일을 보여줍니다.

{
  "version": 1,
  "isRoot": true,
  "tools": {
    "botsay": {
      "version": "1.0.0",
      "commands": [
        "botsay"
      ]
    },
    "dotnetsay": {
      "version": "2.1.3",
      "commands": [
        "dotnetsay"
      ]
    }
  }
}

일반적으로 리포지토리의 루트 디렉터리에 로컬 도구를 추가합니다. 매니페스트 파일을 리포지토리에 체크 인한 후 리포지토리에서 코드를 체크 아웃한 개발자는 최신 매니페스트 파일을 가져옵니다. 매니페스트 파일에 나열된 모든 도구를 설치하려면 다음 명령을 실행합니다 dotnet tool restore .

dotnet tool restore

출력은 복원된 도구를 나타냅니다.

Tool 'botsay' (version '1.0.0') was restored. Available commands: botsay
Tool 'dotnetsay' (version '2.1.3') was restored. Available commands: dotnetsay
Restore was successful.

특정 도구 버전 설치

시험판 버전 또는 특정 버전의 도구를 설치하려면 다음 예제와 같이 옵션을 사용하여 --version 버전 번호를 지정합니다.

dotnet tool install dotnetsay --version 2.1.3

정확한 버전 번호를 지정하지 않고 도구의 시험판 버전을 설치하려면 다음 예제와 같이 옵션을 사용하고 --version 와일드카드를 제공합니다.

dotnet tool install --global dotnetsay --version "*-rc*"

도구 사용

도구를 호출하는 데 사용하는 명령은 설치한 패키지의 이름과 다를 수 있습니다. 현재 사용자의 컴퓨터에 현재 설치된 모든 도구를 표시하려면 dotnet 도구 목록 명령을 사용합니다.

dotnet tool list

출력은 다음 예제와 유사하게 각 도구의 버전과 명령을 보여줍니다.

Package Id      Version      Commands       Manifest
-------------------------------------------------------------------------------------------
botsay          1.0.0        botsay         /home/name/repository/.config/dotnet-tools.json
dotnetsay       2.1.3        dotnetsay      /home/name/repository/.config/dotnet-tools.json

앞의 예제와 같이 목록에 로컬 도구가 표시됩니다. 전역 도구를 보려면 이 --global 옵션을 사용합니다. 도구 경로 도구를 보려면 이 --tool-path 옵션을 사용합니다.

특정 도구를 나열하려면 dotnet 도구 목록 <PACKAGE_ID> 명령을 사용합니다.

dotnet tool list dotnetsay

출력은 다음 예제와 유사하게 설치된 경우에만 해당 도구를 나열합니다.

Package Id      Version      Commands       Manifest
-------------------------------------------------------------------------------------------
dotnetsay       2.1.3        dotnetsay      /home/name/repository/.config/dotnet-tools.json

전역 도구 호출

전역 도구의 경우 도구 명령 자체를 사용합니다. 예를 들어 명령인 dotnetsay 경우 또는 dotnet-doc전역 도구를 호출하는 데 사용하는 명령입니다.

dotnetsay
dotnet-doc

명령이 접두 dotnet-사로 시작하는 경우 도구를 호출하는 다른 방법은 명령을 사용하고 dotnet 도구 명령 접두사를 생략하는 것입니다. 예를 들어 명령이 있는 dotnet-doc경우 다음 명령은 도구를 호출합니다.

dotnet doc

그러나 다음 시나리오에서는 이 명령을 사용하여 dotnet 전역 도구를 호출할 수 없습니다.

  • 전역 도구와 로컬 도구에는 접두사로 지정된 명령이 dotnet-동일합니다.
  • 로컬 도구의 범위에 있는 디렉터리에서 전역 도구를 호출하려고 합니다.

이 시나리오 dotnet docdotnet dotnet-doc 에서는 로컬 도구를 호출합니다. 전역 도구를 호출하려면 명령 자체를 사용합니다.

dotnet-doc

도구 경로 도구 호출

이 옵션을 사용하여 tool-path 설치된 전역 도구를 호출하려면 이 문서의 앞부분에서 설명한 대로 명령을 사용할 수 있는지 확인합니다.

로컬 도구 호출

로컬 도구를 호출하려면 설치 디렉터리 내에서 명령을 사용해야 dotnet 합니다. 다음 예제와 같이 긴 형식(dotnet tool run <COMMAND_NAME>) 또는 짧은 형식(dotnet <COMMAND_NAME>)을 사용할 수 있습니다.

dotnet tool run dotnetsay
dotnet dotnetsay

명령의 접두 dotnet-사로 지정된 경우 도구를 호출할 때 접두사를 포함하거나 생략할 수 있습니다. 예를 들어 명령이 있으면 dotnet-doc다음 예제 중 하나는 로컬 도구를 호출합니다.

dotnet tool run dotnet-doc
dotnet dotnet-doc
dotnet doc

도구 업데이트

도구를 업데이트하려면 안정적인 최신 버전으로 도구를 제거하고 다시 설치해야 합니다. 도구를 업데이트하려면 도구를 설치하는 데 사용한 것과 동일한 옵션으로 dotnet 도구 업데이트 명령을 사용합니다.

dotnet tool update --global <packagename>
dotnet tool update --tool-path <packagename>
dotnet tool update <packagename>

로컬 도구의 경우 SDK는 현재 디렉터리와 부모 디렉터리를 찾아 패키지 ID를 포함하는 첫 번째 매니페스트 파일을 찾습니다. 매니페스트 파일에 이러한 패키지 ID가 없는 경우 SDK는 가장 가까운 매니페스트 파일에 새 항목을 추가합니다.

도구 제거

도구를 설치하는 데 사용한 것과 동일한 옵션으로 dotnet tool uninstall 명령을 사용하여 도구를 제거합니다.

dotnet tool uninstall --global <packagename>
dotnet tool uninstall --tool-path <packagename>
dotnet tool uninstall <packagename>

로컬 도구의 경우 SDK는 현재 디렉터리와 부모 디렉터리를 찾아 패키지 ID를 포함하는 첫 번째 매니페스트 파일을 찾습니다.

도움말 및 문제 해결

도구를 설치하거나 실행하지 못하는 경우 .NET 도구 사용 문제 해결을 참조하세요. 매개 변수를 사용하여 --help 사용 가능한 dotnet tool 명령 및 매개 변수 목록을 가져올 수 있습니다.

dotnet tool --help

도구 사용 지침을 얻으려면 다음 명령 중 하나를 입력하거나 도구의 웹 사이트를 참조하세요.

<command> --help
dotnet <command> --help

참고하십시오