今天在写一个程序的时候,准备使用grpc,然而,然而使用自带的示例编译的时候却编译出错,错误提示如下:
--grpc_out: protoc-gen-grpc: The system cannot find the path specified.
在网上找了下,在Stack Overflow找到了答案:java - Grpc cannot resolve symbol GreeterGrpc - Stack Overflow。具体原因是google的编译工具不支持中文路径,而使用c#开发的时候,是使用了nuget的路径,这个路径是在%appdata%\NuGet底下,一旦使用了中文用户名,就出现这个问题了。
解决方法有两个,1. 新建一个英文用户名,2. 修改nuget包路径。 由于我是家里的电脑,不想使用英文名用户,就采用了方案2,原文里也有具体的方案,那就是修改%appdata%\NuGet\NuGet.config文件,添加globalPackagesFolder配置,示例如下:
<configuration>
<config>
<add
key="globalPackagesFolder"
value="D:\.nuget\packages"
/>
</config>
</configuration>