今天在寫一個程序的時候,準備使用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>