dotnet-grpc를 사용하여 Protobuf 참조를 관리하세요.Manage Protobuf references with dotnet-grpc

작성자: John LuoBy John Luo

dotnet-grpc는 .NET gRPC 프로젝트 내에서 Protobuf( .proto) 참조를 관리하기 위한 .NET Core 전역 도구입니다.dotnet-grpc is a .NET Core Global Tool for managing Protobuf (.proto) references within a .NET gRPC project. 이 도구를 사용하여 Protobuf 참조를 추가, 새로 고침, 제거 및 나열할 수 있습니다.The tool can be used to add, refresh, remove, and list Protobuf references.

설치Installation

dotnet-grpc .NET Core 전역 도구를 설치하려면 다음 명령을 실행합니다.To install the dotnet-grpc .NET Core Global Tool, run the following command:

dotnet tool install -g dotnet-grpc

참조 추가Add references

dotnet-grpc를 사용하여 .csproj 파일에 Protobuf 참조를 <Protobuf /> 항목으로 추가할 수 있습니다.dotnet-grpc can be used to add Protobuf references as <Protobuf /> items to the .csproj file:

<Protobuf Include="Protos\greet.proto" GrpcServices="Server" />

Protobuf 참조는 C# 클라이언트 및/또는 서버 자산을 생성하는 데 사용됩니다.The Protobuf references are used to generate the C# client and/or server assets. dotnet-grpc 도구는 다음을 수행할 수 있습니다.The dotnet-grpc tool can:

  • 디스크의 로컬 파일에서 Protobuf 참조를 만듭니다.Create a Protobuf reference from local files on disk.
  • URL로 지정된 원격 파일에서 Protobuf 참조를 만듭니다.Create a Protobuf reference from a remote file specified by a URL.
  • 올바른 gRPC 패키지 종속성이 프로젝트에 추가되도록 합니다.Ensure the correct gRPC package dependencies are added to the project.

예를 들어 웹앱에는 Grpc.AspNetCore 패키지가 추가됩니다.For example, the Grpc.AspNetCore package is added to a web app. Grpc.AspNetCore는 gRPC 서버 및 클라이언트 라이브러리와 도구 지원을 포함합니다.Grpc.AspNetCore contains gRPC server and client libraries and tooling support. 또는 콘솔 앱에는 gRPC 클라이언트 라이브러리와 도구 지원만 포함하는 Grpc.Net.Client, Grpc.ToolsGoogle.Protobuf 패키지가 추가됩니다.Alternatively, the Grpc.Net.Client, Grpc.Tools and Google.Protobuf packages, which contain only the gRPC client libraries and tooling support, are added to a Console app.

파일 추가Add file

add-file 명령은 디스크의 로컬 파일을 Protobuf 참조로 추가하는 데 사용됩니다.The add-file command is used to add local files on disk as Protobuf references. 제공되는 파일 경로와 관련해서 다음 사항을 확인합니다.The file paths provided:

  • 현재 디렉터리 기준의 상대 경로이거나 절대 경로일 수 있습니다.Can be relative to the current directory or absolute paths.
  • 패턴 기반 파일 와일드카드 사용을 위해 와일드카드를 포함할 수 있습니다.May contain wild cards for pattern-based file globbing.

프로젝트 디렉터리 외부에 파일이 있는 경우, Visual Studio의 Protos 폴더 아래에 있는 파일을 표시하기 위해 Link 요소가 추가됩니다.If any files are outside the project directory, a Link element is added to display the file under the folder Protos in Visual Studio.

사용법Usage

dotnet grpc add-file [options] <files>...

인수Arguments

인수Argument 설명Description
파일files protobuf 파일 참조입니다.The protobuf file references. 로컬 protobuf 파일의 GLOB 경로일 수 있습니다.These can be a path to glob for local protobuf files.

옵션Options

짧음 옵션Short option 긴 옵션Long option 설명Description
-p-p --project--project 작업할 프로젝트 파일의 경로입니다.The path to the project file to operate on. 파일을 지정하지 않은 경우, 명령은 현재 디렉터리에서 파일을 검색합니다.If a file is not specified, the command searches the current directory for one.
-S-s --services--services 생성해야 하는 gRPC 서비스의 형식입니다.The type of gRPC services that should be generated. Default를 지정한 경우, 웹 프로젝트에는 Both가 사용되고 웹 프로젝트가 아닌 프로젝트에는 Client가 사용됩니다.If Default is specified, Both is used for Web projects and Client is used for non-Web projects. 허용되는 값은 Both, Client, Default, None, Server입니다.Accepted values are Both, Client, Default, None, Server.
-i-i --additional-import-dirs--additional-import-dirs protobuf 파일의 가져오기를 확인할 때 사용할 추가 디렉터리입니다.Additional directories to be used when resolving imports for the protobuf files. 세미콜론으로 구분된 경로 목록입니다.This is a semicolon separated list of paths.
--access--access 생성된 C# 클래스에 사용할 액세스 한정자입니다.The access modifier to use for the generated C# classes. 기본값은 Public입니다.The default value is Public. 허용되는 값은 InternalPublic입니다.Accepted values are Internal and Public.

URL 추가Add URL

add-url 명령은 소스 URL에 지정된 원격 파일을 Protobuf 참조로 추가하는 데 사용됩니다.The add-url command is used to add a remote file specified by an source URL as Protobuf reference. 원격 파일을 다운로드할 위치를 지정하려면 파일 경로를 제공해야 합니다.A file path must be provided to specify where to download the remote file. 파일 경로는 현재 디렉터리 기준의 상대 경로이거나 절대 경로일 수 있습니다.The file path can be relative to the current directory or an absolute path. 파일 경로가 프로젝트 디렉터리 외부에 있는 경우, Visual Studio의 Protos 가상 폴더 아래에 있는 파일을 표시하기 위해 Link 요소가 추가됩니다.If the file path is outside the project directory, a Link element is added to display the file under the virtual folder Protos in Visual Studio.

사용법Usage

dotnet-grpc add-url [options] <url>

인수Arguments

인수Argument 설명Description
urlurl 원격 protobuf 파일의 URL입니다.The URL to a remote protobuf file.

옵션Options

짧음 옵션Short option 긴 옵션Long option 설명Description
-o-o --output--output 원격 protobuf 파일의 다운로드 경로를 지정합니다.Specifies the download path for the remote protobuf file. 필수 옵션입니다.This is a required option.
-p-p --project--project 작업할 프로젝트 파일의 경로입니다.The path to the project file to operate on. 파일을 지정하지 않은 경우, 명령은 현재 디렉터리에서 파일을 검색합니다.If a file is not specified, the command searches the current directory for one.
-S-s --services--services 생성해야 하는 gRPC 서비스의 형식입니다.The type of gRPC services that should be generated. Default를 지정한 경우, 웹 프로젝트에는 Both가 사용되고 웹 프로젝트가 아닌 프로젝트에는 Client가 사용됩니다.If Default is specified, Both is used for Web projects and Client is used for non-Web projects. 허용되는 값은 Both, Client, Default, None, Server입니다.Accepted values are Both, Client, Default, None, Server.
-i-i --additional-import-dirs--additional-import-dirs protobuf 파일의 가져오기를 확인할 때 사용할 추가 디렉터리입니다.Additional directories to be used when resolving imports for the protobuf files. 세미콜론으로 구분된 경로 목록입니다.This is a semicolon separated list of paths.
--access--access 생성된 C# 클래스에 사용할 액세스 한정자입니다.The access modifier to use for the generated C# classes. 기본값은 Public여야 합니다.Default value is Public. 허용되는 값은 InternalPublic입니다.Accepted values are Internal and Public.

제거Remove

remove 명령은 .csproj 파일에서 Protobuf 참조를 제거하는 데 사용됩니다.The remove command is used to remove Protobuf references from the .csproj file. 이 명령은 경로 인수와 소스 URL을 인수로 사용합니다.The command accepts path arguments and source URLs as arguments. 도구와 관련해서 다음 사항을 확인합니다.The tool:

  • Protobuf 참조만 제거합니다.Only removes the Protobuf reference.
  • 원래 원격 URL에서 다운로드된 경우에도 .proto 파일을 삭제하지 않습니다.Does not delete the .proto file, even if it was originally downloaded from a remote URL.

사용법Usage

dotnet-grpc remove [options] <references>...

인수Arguments

인수Argument 설명Description
참조references 제거할 protobuf 참조의 URL 또는 파일 경로입니다.The URLs or file paths of the protobuf references to remove.

옵션Options

짧음 옵션Short option 긴 옵션Long option 설명Description
-p-p --project--project 작업할 프로젝트 파일의 경로입니다.The path to the project file to operate on. 파일을 지정하지 않은 경우, 명령은 현재 디렉터리에서 파일을 검색합니다.If a file is not specified, the command searches the current directory for one.

새로 고침Refresh

refresh 명령은 소스 URL의 최신 콘텐츠로 원격 참조를 업데이트하는 데 사용됩니다.The refresh command is used to update a remote reference with the latest content from the source URL. 다운로드 파일 경로와 소스 URL을 모두 사용하여 업데이트할 참조를 지정할 수 있습니다.Both the download file path and the source URL can be used to specify the reference to be updated. 참고:Note:

  • 파일 콘텐츠의 해시를 비교하여 로컬 파일을 업데이트해야 하는지를 확인합니다.The hashes of the file contents are compared to determine whether the local file should be updated.
  • 타임스탬프 정보는 비교되지 않습니다.No timestamp information is compared.

업데이트가 필요한 경우, 도구는 항상 로컬 파일을 원격 파일로 바꿉니다.The tool always replaces the local file with the remote file if an update is needed.

사용법Usage

dotnet-grpc refresh [options] [<references>...]

인수Arguments

인수Argument 설명Description
참조references 업데이트해야 하는 원격 protobuf 참조의 URL 또는 파일 경로입니다.The URLs or file paths to remote protobuf references that should be updated. 모든 원격 참조를 새로 고치려면 이 인수를 비워 둡니다.Leave this argument empty to refresh all remote references.

옵션Options

짧음 옵션Short option 긴 옵션Long option 설명Description
-p-p --project--project 작업할 프로젝트 파일의 경로입니다.The path to the project file to operate on. 파일을 지정하지 않은 경우, 명령은 현재 디렉터리에서 파일을 검색합니다.If a file is not specified, the command searches the current directory for one.
--dry-run--dry-run 새 콘텐츠를 다운로드하지 않고 업데이트되는 파일 목록을 출력합니다.Outputs a list of files that would be updated without downloading any new content.

목록List

list 명령은 프로젝트 파일에 모든 Protobuf 참조를 표시하는 데 사용됩니다.The list command is used to display all the Protobuf references in the project file. 열의 모든 값이 기본값인 경우 열을 생략할 수 있습니다.If all values of a column are default values, the column may be omitted.

사용법Usage

dotnet-grpc list [options]

옵션Options

짧음 옵션Short option 긴 옵션Long option 설명Description
-p-p --project--project 작업할 프로젝트 파일의 경로입니다.The path to the project file to operate on. 파일을 지정하지 않은 경우, 명령은 현재 디렉터리에서 파일을 검색합니다.If a file is not specified, the command searches the current directory for one.

추가 자료Additional resources