“ProtoCompile”任务不支持“AdditionalProtocArguments”参数,.Net Core Console 应用程序

use*_*918 5 c# .net-core grpc

我不确定发生了什么,但我让 grpc 在控制台应用程序和 ASP.NET Core grpc 服务器之间工作,但是当我对 proto 文件进行更改时,控制台应用程序停止编译。然后我决定按照示例创建一个全新的控制台应用程序,虽然我的 proto 文件(来自示例)被设置为服务器,然后 grpc 服务构建正常,但是一旦我在控制台应用程序中将其更改为客户端,我就会收到此错误。

“ProtoCompile”任务不支持“AdditionalProtocArguments”参数。验证该参数是否存在于任务中,并且它是一个可设置的公共实例属性。

我在使用 grpc 服务时没有遇到这个问题,只有客户端 - 甚至是新的客户端应用程序。所以我可以消除我的特定编码。这是一个构建/配置问题。另一个问题是,在添加新文件时,希望添加 Proto 文件不返回任何选项,但是当我在服务器项目上执行此操作时,我得到了协议缓冲区文件的选项。

我在客户端上的软件包是 Google.Protobuf 3.15.8;Grpc.Net.Client 2.37.0; Grpc.Tools 2.37.0

我不知道该怎么办。我可以创建一个全新的控制台应用程序,添加 nuget 包,添加一个 Protos 文件夹,当我尝试添加一个 proto 文件时,我什至没有得到这种类型的文件。我什至重新启动没有任何效果!

我遵循的 grpc 客户端和服务器示例

Mil*_*los 13

清理项目并重新启动 Visual Studio 为我修复了这里推荐的错误

更新:将与 gRPC 相关的 nuget 更新到最新版本(不是 Visual Studio 默认模板添加的那些)后,这不再发生。目前的工作版本是: Grpc.Tools为 2.38.1,Google.Protobuf3.17.3Grpc.Net.Client为 2.38.0


小智 7

我遇到了同样的问题,没有答案直接帮助我,但我通过以下步骤解决了我的问题:

  1. 更新Grpc.AspNetCore包(默认Grpc项目使用版本2.34和grpc.tools版本2.34所以会产生冲突)
  2. VS 的干净解决方案
  3. 关闭VS
  4. 从文件资源管理器删除解决方案文件夹子目录中的所有 debug 和 bin 文件夹
  5. 转到 nuget 包文件夹(默认情况下位于 C:\Users{user}.nuget\packages 上)
  6. 转到 grpc.tools 文件夹
  7. 删除 2.37.0 之前的所有版本文件夹
  8. 打开VS
  9. 构建解决方案


小智 1

我有同样的错误。将 AspNetCore 降级到版本 2.34(新项目的标准版本),然后正确构建

  • 降级版本并不总是安全的。清洁并重新启动效果很好。 (2认同)