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

Note

Это не последняя версия этой статьи. В текущей версии см. версию .NET 10 этой статьи.

Warning

Эта версия ASP.NET Core больше не поддерживается. Дополнительные сведения см. в политике поддержки .NET и .NET Core. В текущей версии см. версию .NET 10 этой статьи.

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

Installation

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

dotnet tool install -g dotnet-grpc

Note

По умолчанию архитектура двоичных файлов .NET для установки представляет архитектуру операционной системы. Чтобы указать другую архитектуру, просмотрите, как использовать dotnet tool install команду с параметром "--arch". Дополнительные сведения см. в обсуждении GitHub dotnet/aspnetcore.docs № 29262 - Добавьте "-a arm64" на Apple Silicon.

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

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.

Usage

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

Arguments

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

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

Usage

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

Arguments

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

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

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

Usage

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

Arguments

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

Options

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

Refresh

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

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

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

Usage

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

Arguments

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

Options

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

List

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

Usage

dotnet-grpc list [options]

Options

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

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