ASP.NET Core: Quản lý tham chiếu Protobuf với dotnet-grpc
Trong bài viết này
dotnet-grpc
là một Công cụ toàn cầu .NET Core để quản lý các tham chiếu Protobuf (.proto) trong dự án .NET gRPC. Công cụ này có thể được sử dụng để thêm, làm mới, xóa và liệt kê các tài liệu tham khảo Protobuf.
Cài đặt
Để cài đặt dotnet-grpc
.NET Core Global Tool, hãy chạy lệnh sau:
dotnet tool install -g dotnet-grpc
Ghi chú
Theo mặc định, kiến trúc của các tệp nhị phân .NET cần cài đặt đại diện cho kiến trúc hệ điều hành hiện đang chạy. Để chỉ định kiến trúc hệ điều hành khác, hãy xem cài đặt công cụ dotnet, tùy chọn --arch. Để biết thêm thông tin, hãy xem vấn đề GitHub dotnet/AspNetCore.Docs #29262.
Thêm tham chiếu
dotnet-grpc
có thể được sử dụng để thêm các tham chiếu Protobuf làm mục <Protobuf/>
vào file .csproj
:
<Protobuf Include="Protos\greet.proto" GrpcServices="Server" />
Các tham chiếu Protobuf được sử dụng để tạo nội dung máy khách và/hoặc máy chủ C#. Công cụ dotnet-grpc
có thể:
- Tạo tham chiếu Protobuf từ các tệp cục bộ trên đĩa.
- Tạo tham chiếu Protobuf từ tệp từ xa được chỉ định bởi URL.
- Đảm bảo các phần phụ thuộc gói gRPC chính xác được thêm vào dự án.
Ví dụ: gói Grpc.AspNetCore
được thêm vào ứng dụng web. Grpc.AspNetCore
chứa các thư viện máy chủ và máy khách gRPC và hỗ trợ công cụ. Ngoài ra, các gói Grpc.Net.Client
, Grpc.Tools
và Google.Protobuf
chỉ chứa thư viện máy khách gRPC và hỗ trợ công cụ sẽ được thêm vào ứng dụng Console.
Thêm file
Lệnh add-file
được sử dụng để thêm các tệp cục bộ trên đĩa làm tham chiếu Protobuf. Đường dẫn tệp được cung cấp:
- Có thể liên quan đến thư mục hiện tại hoặc đường dẫn tuyệt đối.
- Có thể chứa các ký tự đại diện cho tệp dựa trên mẫu toàn cầu.
Nếu bất kỳ tệp nào nằm ngoài thư mục dự án, một phần tử Link
sẽ được thêm vào để hiển thị tệp trong thư mục Protos
trong Visual Studio.
Cách sử dụng
dotnet-grpc add-file [options] <files>...
Đối số
Đối số | Mô tả |
---|---|
file | Các tham chiếu file protobuf. Đây có thể là đường dẫn tới toàn cầu (glob) cho các file protobuf cục bộ. |
Tùy chọn
Tùy chọn ngắn | Tùy chọn dài | Mô tả |
---|---|---|
-p | --project | Đường dẫn đến tệp dự án để thao tác. Nếu một tập tin không được chỉ định, lệnh sẽ tìm kiếm một tập tin trong thư mục hiện tại. |
-s | --services | Loại dịch vụ gRPC sẽ được tạo. Nếu Default được chỉ định, Both sẽ được sử dụng cho các dự án Web và Client được sử dụng cho các dự án không phải Web. Các giá trị được chấp nhận là Both , Client , Default , None , Server . |
-i | --additional-import-dirs | Các thư mục bổ sung sẽ được sử dụng khi giải quyết việc import các tệp protobuf. Đây là danh sách các đường dẫn được phân tách bằng dấu chấm phẩy. |
--access | Công cụ sửa đổi truy cập để sử dụng cho các lớp C# được tạo. Giá trị mặc định là Public . Các giá trị được chấp nhận là Internal và Public . |
Thêm URL
Lệnh add-url
được sử dụng để thêm file từ xa được chỉ định bởi URL nguồn làm tham chiếu Protobuf. Đường dẫn file phải được cung cấp để chỉ định nơi tải xuống file từ xa. Đường dẫn file có thể liên quan đến thư mục hiện tại hoặc đường dẫn tuyệt đối. Nếu đường dẫn file nằm ngoài thư mục dự án, thì một phần tử Link
sẽ được thêm vào để hiển thị file trong thư mục ảo Protos
trong Visual Studio.
Cách sử dụng
dotnet-grpc add-url [options] <url>
Đối số
Đối số | Mô tả |
---|---|
url | URL tới tệp protobuf từ xa. |
Tùy chọn
Tùy chọn ngắn | Tùy chọn dài | Môt tả |
---|---|---|
-o | --output | Chỉ định đường dẫn tải xuống cho tệp protobuf từ xa. Đây là một lựa chọn bắt buộc. |
-p | --project | Đường dẫn đến file dự án để thao tác. Nếu một file không được chỉ định, lệnh sẽ tìm kiếm một file trong thư mục hiện tại. |
-s | --services | Loại dịch vụ gRPC sẽ được tạo. Nếu Default được chỉ định, Both sẽ được sử dụng cho các dự án Web và Client được sử dụng cho các dự án không phải Web. Các giá trị được chấp nhận là Both , Client , Default , None , Server . |
-i | --additional-import-dirs | Các thư mục bổ sung sẽ được sử dụng khi giải quyết việc import các file protobuf. Đây là danh sách các đường dẫn được phân tách bằng dấu chấm phẩy. |
--access | Công cụ sửa đổi truy cập để sử dụng cho các lớp C# được tạo. Giá trị mặc định là Public . Các giá trị được chấp nhận là Internal và Public . |
Lệnh remove
Lệnh remove
được sử dụng để xóa tham chiếu Protobuf khỏi file .csproj
. Lệnh chấp nhận đối số đường dẫn và URL nguồn làm đối số. Công cụ:
- Chỉ xóa tham chiếu Protobuf.
- Không xóa file
.proto
ngay cả khi file được tải xuống ban đầu từ một URL từ xa.
Cách sử dụng
dotnet-grpc remove [options] <references>...
Đối số
Đối số | Mô tả |
---|---|
references | URL hoặc đường dẫn file của tham chiếu protobuf cần xóa. |
Tùy chọn
Tùy chọn ngắn | Tùy chọn dài | Mô tả |
---|---|---|
-p | --project | Đường dẫn đến file dự án để thao tác. Nếu một file không được chỉ định, lệnh sẽ tìm kiếm một file trong thư mục hiện tại. |
Lệnh refresh
Lệnh refresh
được sử dụng để cập nhật tham chiếu từ xa với nội dung mới nhất từ URL nguồn. Cả đường dẫn file tải xuống và URL nguồn đều có thể được sử dụng để chỉ định tham chiếu cần cập nhật. Ghi chú:
- Giá trị băm của nội dung file được so sánh để xác định xem file cục bộ có nên được cập nhật hay không.
- Không có thông tin dấu thời gian được so sánh.
Công cụ này luôn thay thế file cục bộ bằng file từ xa nếu cần cập nhật.
Cách sử dụng
dotnet-grpc refresh [options] [<references>...]
Đối số
Đối số | Mô tả |
---|---|
references | Các URL hoặc đường dẫn file tới tham chiếu protobuf từ xa cần được cập nhật. Để trống đối số này để làm mới tất cả các tham chiếu từ xa. |
Tùy chọn
Tùy chọn ngắn | Tùy chọn dài | Mô tả |
---|---|---|
-p | --project | Đường dẫn đến file dự án để thao tác. Nếu một file không được chỉ định, lệnh sẽ tìm kiếm một file trong thư mục hiện tại. |
--dry-run | Xuất ra danh sách các file sẽ được cập nhật mà không cần tải xuống bất kỳ nội dung mới nào. |
Lệnh list
Lệnh list
được sử dụng để hiển thị tất cả các tham chiếu Protobuf trong file dự án. Nếu tất cả các giá trị của một cột là giá trị mặc định thì cột đó có thể bị bỏ qua.
Cách sử dụng
dotnet-grpc list [options]
Tùy chọn
Tùy chọn ngắn | Tùy chọn dài | Mô tả |
---|---|---|
-p | --project | Đường dẫn đến file dự án để thao tác. Nếu một file không được chỉ định, lệnh sẽ tìm kiếm một file trong thư mục hiện tại. |