Управление ссылками protobuf с помощью .NET gRPC

dotnet-grpc — это глобальное средство .NET Core для управления ссылками Protobuf (.proto) в рамках проекта gRPC .NET. Это средство можно использовать для добавления, обновления, удаления и перечисления ссылок Protobuf.

Установка

Чтобы установить dotnet-grpcглобальное средство .NET Core, выполните следующую команду:

dotnet tool install -g dotnet-grpc

Примечание.

По умолчанию архитектура двоичных файлов .NET для установки представляет архитектуру операционной системы. Чтобы указать другую архитектуру ОС, см . параметр dotnet tool install, --arch. Дополнительные сведения см. в статье о проблеме GitHub dotnet/AspNetCore.Docs #29262.

Добавление ссылок

dotnet-grpc можно использовать для добавления ссылок Protobuf в качестве элементов <Protobuf /> в файл .csproj:

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

Ссылки Protobuf используются для создания клиентских и (или) серверных ресурсов C#. Средство dotnet-grpc предоставляет указанные ниже возможности:

  • Создание ссылки Protobuf из локальных файлов на диске.
  • Создание ссылки Protobuf из удаленного файла, указанного с помощью URL-адреса.
  • Гарантия добавления в проект правильных зависимостей пакета gRPC.

Например, пакет Grpc.AspNetCore добавляется в веб-приложение. Grpc.AspNetCore содержит поддержку инструментов и серверных и клиентских библиотек gRPC. Кроме того, пакеты Grpc.Net.Client, Grpc.Tools и Google.Protobuf, содержащие только поддержку инструментов и серверных и клиентских библиотек gRPC, добавляются в консольное приложение.

Добавить файл

Команда add-file используется для добавления локальных файлов на диске в качестве ссылок Protobuf. Предоставленные пути к файлам:

  • могут быть указаны относительно текущего каталога или абсолютных путей;
  • могут содержать подстановочные знаки для использования стандартных масок файлов.

Если какие-либо файлы находятся за пределами каталога проекта, добавляется элемент Link для отображения файла в папке Protos в Visual Studio.

Использование

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

Аргументы

Аргумент Description
files Ссылки на файлы protobuf. Это может быть путь к стандартной маске для локальных файлов protobuf.

Параметры

Короткий параметр Длинный параметр 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. Чтобы указать место для скачивания удаленного файла, необходимо задать путь к файлу. Этот путь может быть указан относительно текущего каталога или абсолютного пути. Если этот путь находится за пределами каталога проекта, добавляется элемент Link для отображения файла в папке Protos в Visual Studio.

Использование

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

Аргументы

Аргумент Description
url-адрес URL-адрес удаленного файла protobuf.

Параметры

Короткий параметр Длинный параметр 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 используется для удаления ссылок Protobuf из файла .csproj. В качестве аргументов эта команда принимает URL-адреса источника и аргументы пути. Средство:

  • удаляет только ссылку Protobuf;
  • Не удаляет .proto файл, даже если он был первоначально скачан из удаленный URL-адрес.

Использование

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

Аргументы

Аргумент Description
ссылки URL-адреса или пути к файлам для удаляемых ссылок protobuf.

Параметры

Короткий параметр Длинный параметр Description
-p --project Путь к целевому файлу проекта. Если файл не указан, команда ищет текущий каталог для него.

Обновить

Команда refresh используется для обновления удаленной ссылки последним содержимым из URL-адреса источника. Для указания обновляемой ссылки можно использовать как путь скачивания файла, так и URL-адрес источника. Примечание.

  • Хэши содержимого файла сравниваются, чтобы определить, требуется ли обновить локальный файл.
  • Сведения о метке времени не сравниваются.

Средство всегда заменяет локальный файл удаленным, если требуется обновление.

Использование

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

Аргументы

Аргумент Description
ссылки URL-адреса или пути к файлам для удаленных ссылок protobuf, которые нужно обновить. Оставьте этот аргумент пустым, чтобы обновить все удаленные ссылки.

Параметры

Короткий параметр Длинный параметр Description
-p --project Путь к целевому файлу проекта. Если файл не указан, команда ищет текущий каталог для него.
--dry-run Выводит список файлов, которые будут обновлены без скачивания нового содержимого.

Список (List)

Команда list используется для вывода всех ссылок на Protobuf в файле проекта. Если все значения столбца являются значениями по умолчанию, этот столбец можно опустить.

Использование

dotnet-grpc list [options]

Параметры

Короткий параметр Длинный параметр Description
-p --project Путь к целевому файлу проекта. Если файл не указан, команда ищет текущий каталог для него.

Дополнительные ресурсы