Gerenciar referências de Protobuf com dotnet-grpcManage Protobuf references with dotnet-grpc

Por John LuoBy John Luo

dotnet-grpc é uma ferramenta global do .NET Core para gerenciar referências de Protobuf (. proto) em um projeto gRPC do .net.dotnet-grpc is a .NET Core Global Tool for managing Protobuf (.proto) references within a .NET gRPC project. A ferramenta pode ser usada para adicionar, atualizar, remover e listar referências de Protobuf.The tool can be used to add, refresh, remove, and list Protobuf references.

InstalaçãoInstallation

Para instalar a dotnet-grpc ferramenta global do .NET Core, execute o seguinte comando:To install the dotnet-grpc .NET Core Global Tool, run the following command:

dotnet tool install -g dotnet-grpc

Adicionar referênciasAdd references

dotnet-grpc pode ser usado para adicionar referências Protobuf como <Protobuf /> itens ao arquivo . csproj :dotnet-grpc can be used to add Protobuf references as <Protobuf /> items to the .csproj file:

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

As referências de Protobuf são usadas para gerar os ativos do cliente C# e/ou do servidor.The Protobuf references are used to generate the C# client and/or server assets. A dotnet-grpc ferramenta pode:The dotnet-grpc tool can:

  • Crie uma referência de Protobuf de arquivos locais em disco.Create a Protobuf reference from local files on disk.
  • Crie uma referência de Protobuf de um arquivo remoto especificado por uma URL.Create a Protobuf reference from a remote file specified by a URL.
  • Verifique se as dependências do pacote gRPC corretas foram adicionadas ao projeto.Ensure the correct gRPC package dependencies are added to the project.

Por exemplo, o Grpc.AspNetCore pacote é adicionado a um aplicativo Web.For example, the Grpc.AspNetCore package is added to a web app. Grpc.AspNetCore contém bibliotecas de cliente e de servidor gRPC e suporte a ferramentas.Grpc.AspNetCore contains gRPC server and client libraries and tooling support. Como alternativa, os Grpc.Net.Client Grpc.Tools pacotes e Google.Protobuf , que contêm apenas as bibliotecas de cliente gRPC e o suporte de ferramentas, são adicionados a um aplicativo de console.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.

Adicionar arquivoAdd file

O add-file comando é usado para adicionar arquivos locais no disco como referências de Protobuf.The add-file command is used to add local files on disk as Protobuf references. Os caminhos de arquivo fornecidos:The file paths provided:

  • Pode ser relativo ao diretório atual ou aos caminhos absolutos.Can be relative to the current directory or absolute paths.
  • Pode conter curingas para o mascaramentode arquivo baseado em padrão.May contain wild cards for pattern-based file globbing.

Se algum arquivo estiver fora do diretório do projeto, um Link elemento será adicionado para exibir o arquivo na pasta Protos no Visual Studio.If any files are outside the project directory, a Link element is added to display the file under the folder Protos in Visual Studio.

UsoUsage

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

ArgumentosArguments

ArgumentoArgument DescriçãoDescription
filesfiles O arquivo protobuf faz referência a.The protobuf file references. Eles podem ser um caminho para glob para arquivos protobuf locais.These can be a path to glob for local protobuf files.

OpçõesOptions

Opção curtaShort option Opção LongLong option DescriçãoDescription
-p-p --projeto--project O caminho para o arquivo de projeto no qual operar.The path to the project file to operate on. Se um arquivo não for especificado, o comando pesquisará o diretório atual em busca de um.If a file is not specified, the command searches the current directory for one.
-S-s --serviços--services O tipo de serviços gRPCs que devem ser gerados.The type of gRPC services that should be generated. Se Default for especificado, Both será usado para projetos Web e Client será usado para projetos não Web.If Default is specified, Both is used for Web projects and Client is used for non-Web projects. Os valores aceitos são,,, Both Client Default None , Server .Accepted values are Both, Client, Default, None, Server.
-i-i --Additional-importar-dirs--additional-import-dirs Diretórios adicionais a serem usados ao resolver importações para os arquivos protobuf.Additional directories to be used when resolving imports for the protobuf files. Esta é uma lista de caminhos separados por ponto e vírgula.This is a semicolon separated list of paths.
--acesso--access O modificador de acesso a ser usado para as classes C# geradas.The access modifier to use for the generated C# classes. O valor padrão é Public.The default value is Public. Os valores aceitos são Internal e Public.Accepted values are Internal and Public.

Adicionar URLAdd URL

O add-url comando é usado para adicionar um arquivo remoto especificado por uma URL de origem como referência de Protobuf.The add-url command is used to add a remote file specified by an source URL as Protobuf reference. Um caminho de arquivo deve ser fornecido para especificar onde baixar o arquivo remoto.A file path must be provided to specify where to download the remote file. O caminho do arquivo pode ser relativo ao diretório atual ou a um caminho absoluto.The file path can be relative to the current directory or an absolute path. Se o caminho do arquivo estiver fora do diretório do projeto, um Link elemento será adicionado para exibir o arquivo na pasta virtual Protos no Visual Studio.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.

UsoUsage

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

ArgumentosArguments

ArgumentoArgument DescriçãoDescription
urlurl A URL para um arquivo protobuf remoto.The URL to a remote protobuf file.

OpçõesOptions

Opção curtaShort option Opção LongLong option DescriçãoDescription
-o-o --output--output Especifica o caminho de download para o arquivo protobuf remoto.Specifies the download path for the remote protobuf file. Trata-se de uma opção obrigatória.This is a required option.
-p-p --projeto--project O caminho para o arquivo de projeto no qual operar.The path to the project file to operate on. Se um arquivo não for especificado, o comando pesquisará o diretório atual em busca de um.If a file is not specified, the command searches the current directory for one.
-S-s --serviços--services O tipo de serviços gRPCs que devem ser gerados.The type of gRPC services that should be generated. Se Default for especificado, Both será usado para projetos Web e Client será usado para projetos não Web.If Default is specified, Both is used for Web projects and Client is used for non-Web projects. Os valores aceitos são,,, Both Client Default None , Server .Accepted values are Both, Client, Default, None, Server.
-i-i --Additional-importar-dirs--additional-import-dirs Diretórios adicionais a serem usados ao resolver importações para os arquivos protobuf.Additional directories to be used when resolving imports for the protobuf files. Esta é uma lista de caminhos separados por ponto e vírgula.This is a semicolon separated list of paths.
--acesso--access O modificador de acesso a ser usado para as classes C# geradas.The access modifier to use for the generated C# classes. O valor padrão é Public.Default value is Public. Os valores aceitos são Internal e Public.Accepted values are Internal and Public.

RemoverRemove

O remove comando é usado para remover referências de Protobuf do arquivo . csproj .The remove command is used to remove Protobuf references from the .csproj file. O comando aceita argumentos de caminho e URLs de origem como argumentos.The command accepts path arguments and source URLs as arguments. A ferramenta:The tool:

  • Remove apenas a referência Protobuf.Only removes the Protobuf reference.
  • Não exclui o arquivo . proto , mesmo que ele tenha sido originalmente baixado de uma URL remota.Does not delete the .proto file, even if it was originally downloaded from a remote URL.

UsoUsage

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

ArgumentosArguments

ArgumentoArgument DescriçãoDescription
referênciasreferences As URLs ou caminhos de arquivo das referências de protobuf a serem removidas.The URLs or file paths of the protobuf references to remove.

OpçõesOptions

Opção curtaShort option Opção LongLong option DescriçãoDescription
-p-p --projeto--project O caminho para o arquivo de projeto no qual operar.The path to the project file to operate on. Se um arquivo não for especificado, o comando pesquisará o diretório atual em busca de um.If a file is not specified, the command searches the current directory for one.

AtualizarRefresh

O refresh comando é usado para atualizar uma referência remota com o conteúdo mais recente da URL de origem.The refresh command is used to update a remote reference with the latest content from the source URL. O caminho do arquivo de download e a URL de origem podem ser usados para especificar a referência a ser atualizada.Both the download file path and the source URL can be used to specify the reference to be updated. Observação:Note:

  • Os hashes do conteúdo do arquivo são comparados para determinar se o arquivo local deve ser atualizado.The hashes of the file contents are compared to determine whether the local file should be updated.
  • Nenhuma informação de timestamp é comparada.No timestamp information is compared.

A ferramenta sempre substituirá o arquivo local pelo arquivo remoto se uma atualização for necessária.The tool always replaces the local file with the remote file if an update is needed.

UsoUsage

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

ArgumentosArguments

ArgumentoArgument DescriçãoDescription
referênciasreferences As URLs ou caminhos de arquivo para referências de protobuf remotas que devem ser atualizadas.The URLs or file paths to remote protobuf references that should be updated. Deixe esse argumento vazio para atualizar todas as referências remotas.Leave this argument empty to refresh all remote references.

OpçõesOptions

Opção curtaShort option Opção LongLong option DescriçãoDescription
-p-p --projeto--project O caminho para o arquivo de projeto no qual operar.The path to the project file to operate on. Se um arquivo não for especificado, o comando pesquisará o diretório atual em busca de um.If a file is not specified, the command searches the current directory for one.
--execução seca--dry-run Gera uma lista de arquivos que seriam atualizados sem baixar nenhum novo conteúdo.Outputs a list of files that would be updated without downloading any new content.

ListaList

O list comando é usado para exibir todas as referências de Protobuf no arquivo de projeto.The list command is used to display all the Protobuf references in the project file. Se todos os valores de uma coluna forem valores padrão, a coluna poderá ser omitida.If all values of a column are default values, the column may be omitted.

UsoUsage

dotnet-grpc list [options]

OpçõesOptions

Opção curtaShort option Opção LongLong option DescriçãoDescription
-p-p --projeto--project O caminho para o arquivo de projeto no qual operar.The path to the project file to operate on. Se um arquivo não for especificado, o comando pesquisará o diretório atual em busca de um.If a file is not specified, the command searches the current directory for one.

Recursos adicionaisAdditional resources