Note
이 문서의 최신 버전은 아닙니다. 현재 릴리스는 이 문서의 .NET 10 버전을 참조하세요.
Warning
이 버전의 ASP.NET Core는 더 이상 지원되지 않습니다. 자세한 내용은 .NET 및 .NET Core 지원 정책을 참조 하세요. 현재 릴리스는 이 문서의 .NET 10 버전을 참조하세요.
dotnet-grpc 는 .NET gRPC 프로젝트 내에서 Protobuf(.proto) 참조를 관리하기 위한 .NET 전역 도구입니다. 이 도구를 사용하여 Protobuf 참조를 추가, 새로 고침, 제거 및 나열할 수 있습니다.
Installation
dotnet-grpc을 설치하려면 다음 명령을 실행합니다.
dotnet tool install -g dotnet-grpc
Note
기본적으로 설치할 .NET 이진 파일의 아키텍처는 현재 실행 중인 OS 아키텍처를 나타냅니다. 다른 OS 아키텍처를 지정하려면 dotnet 도구 설치, --arch 옵션을 참조하세요. 자세한 내용은 GitHub 이슈 dotnet/AspNetCore.Docs #29262를 참조하세요.
참조 추가
dotnet-grpc를 사용하여 <Protobuf /> 파일에 Protobuf 참조를 .csproj 항목으로 추가할 수 있습니다.
<Protobuf Include="Protos\greet.proto" GrpcServices="Server" />
Protobuf 참조는 C# 클라이언트 및/또는 서버 자산을 생성하는 데 사용됩니다.
dotnet-grpc 도구는 다음을 수행할 수 있습니다.
- 디스크의 로컬 파일에서 Protobuf 참조를 만듭니다.
- URL로 지정된 원격 파일에서 Protobuf 참조를 만듭니다.
- 올바른 gRPC 패키지 종속성이 프로젝트에 추가되도록 합니다.
예를 들어 웹앱에는 Grpc.AspNetCore 패키지가 추가됩니다.
Grpc.AspNetCore는 gRPC 서버 및 클라이언트 라이브러리와 도구 지원을 포함합니다. 또는 콘솔 앱에는 gRPC 클라이언트 라이브러리와 도구 지원만 포함하는 Grpc.Net.Client, Grpc.Tools 및 Google.Protobuf 패키지가 추가됩니다.
파일 추가
add-file 명령은 디스크의 로컬 파일을 Protobuf 참조로 추가하는 데 사용됩니다. 제공되는 파일 경로와 관련해서 다음 사항을 확인합니다.
- 현재 디렉터리 기준의 상대 경로이거나 절대 경로일 수 있습니다.
- 패턴 기반 파일 와일드카드 사용을 위해 와일드카드를 포함할 수 있습니다.
프로젝트 디렉터리 외부에 파일이 있는 경우, Visual Studio의 Link 폴더 아래에 있는 파일을 표시하기 위해 Protos 요소가 추가됩니다.
Usage
dotnet-grpc add-file [options] <files>...
Arguments
| Argument | Description |
|---|---|
| files | protobuf 파일 참조입니다. 로컬 protobuf 파일의 GLOB 경로일 수 있습니다. |
Options
| 짧은 옵션 | 긴 옵션 | Description |
|---|---|---|
| -p | --project | 작업할 프로젝트 파일의 경로입니다. 파일을 지정하지 않은 경우, 명령은 현재 디렉터리에서 파일을 검색합니다. |
| -s | --services | 생성해야 하는 gRPC 서비스의 형식입니다.
Default를 지정한 경우, 웹 프로젝트에는 Both가 사용되고 웹 프로젝트가 아닌 프로젝트에는 Client가 사용됩니다. 허용되는 값은 Both, Client, Default, None, Server입니다. |
| -i | --additional-import-dirs | protobuf 파일의 가져오기를 확인할 때 사용할 추가 디렉터리입니다. 세미콜론으로 구분된 경로 목록입니다. |
| --access | 생성된 C# 클래스에 사용할 액세스 한정자입니다. 기본값은 Public입니다. 허용되는 값은 Internal 및 Public입니다. |
URL 추가
add-url 명령은 소스 URL에 지정된 원격 파일을 Protobuf 참조로 추가하는 데 사용됩니다. 원격 파일을 다운로드할 위치를 지정하려면 파일 경로를 제공해야 합니다. 파일 경로는 현재 디렉터리 기준의 상대 경로이거나 절대 경로일 수 있습니다. 파일 경로가 프로젝트 디렉터리 외부에 있는 경우, Visual Studio의 Link 가상 폴더 아래에 있는 파일을 표시하기 위해 Protos 요소가 추가됩니다.
Usage
dotnet-grpc add-url [options] <url>
Arguments
| Argument | Description |
|---|---|
| url | 원격 protobuf 파일의 URL입니다. |
Options
| 짧은 옵션 | 긴 옵션 | Description |
|---|---|---|
| -o | --output | 원격 protobuf 파일의 다운로드 경로를 지정합니다. 필수 옵션입니다. |
| -p | --project | 작업할 프로젝트 파일의 경로입니다. 파일을 지정하지 않은 경우, 명령은 현재 디렉터리에서 파일을 검색합니다. |
| -s | --services | 생성해야 하는 gRPC 서비스의 형식입니다.
Default를 지정한 경우, 웹 프로젝트에는 Both가 사용되고 웹 프로젝트가 아닌 프로젝트에는 Client가 사용됩니다. 허용되는 값은 Both, Client, Default, None, Server입니다. |
| -i | --additional-import-dirs | protobuf 파일의 가져오기를 확인할 때 사용할 추가 디렉터리입니다. 세미콜론으로 구분된 경로 목록입니다. |
| --access | 생성된 C# 클래스에 사용할 액세스 한정자입니다. 기본값은 Public여야 합니다. 허용되는 값은 Internal 및 Public입니다. |
Remove
remove 명령은 .csproj 파일에서 Protobuf 참조를 제거하는 데 사용됩니다. 이 명령은 경로 인수와 소스 URL을 인수로 사용합니다. 도구:
- Protobuf 참조만 제거합니다.
- 파일은
.proto원래 원격 URL 다운로드한 경우에도 삭제하지 않습니다.
Usage
dotnet-grpc remove [options] <references>...
Arguments
| Argument | Description |
|---|---|
| references | 제거할 protobuf 참조의 URL 또는 파일 경로입니다. |
Options
| 짧은 옵션 | 긴 옵션 | Description |
|---|---|---|
| -p | --project | 작업할 프로젝트 파일의 경로입니다. 파일을 지정하지 않은 경우, 명령은 현재 디렉터리에서 파일을 검색합니다. |
Refresh
refresh 명령은 소스 URL의 최신 콘텐츠로 원격 참조를 업데이트하는 데 사용됩니다. 다운로드 파일 경로와 소스 URL을 모두 사용하여 업데이트할 참조를 지정할 수 있습니다. Note:
- 파일 콘텐츠의 해시를 비교하여 로컬 파일을 업데이트해야 하는지를 확인합니다.
- 타임스탬프 정보는 비교되지 않습니다.
업데이트가 필요한 경우, 도구는 항상 로컬 파일을 원격 파일로 바꿉니다.
Usage
dotnet-grpc refresh [options] [<references>...]
Arguments
| Argument | Description |
|---|---|
| references | 업데이트해야 하는 원격 protobuf 참조의 URL 또는 파일 경로입니다. 모든 원격 참조를 새로 고치려면 이 인수를 비워 둡니다. |
Options
| 짧은 옵션 | 긴 옵션 | Description |
|---|---|---|
| -p | --project | 작업할 프로젝트 파일의 경로입니다. 파일을 지정하지 않은 경우, 명령은 현재 디렉터리에서 파일을 검색합니다. |
| --dry-run | 새 콘텐츠를 다운로드하지 않고 업데이트되는 파일 목록을 출력합니다. |
List
list 명령은 프로젝트 파일에 모든 Protobuf 참조를 표시하는 데 사용됩니다. 열의 모든 값이 기본값인 경우 열을 생략할 수 있습니다.
Usage
dotnet-grpc list [options]
Options
| 짧은 옵션 | 긴 옵션 | Description |
|---|---|---|
| -p | --project | 작업할 프로젝트 파일의 경로입니다. 파일을 지정하지 않은 경우, 명령은 현재 디렉터리에서 파일을 검색합니다. |
추가 리소스
ASP.NET Core