tnblog
首页
视频
资源
登录
慢慢来
排名
55
文章
5
粉丝
8
评论
4
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

关于Grpc服务报错"protoc-gen-grpc:系统找不到指定的路径。"

10926人阅读 2021/6/12 0:46 总访问:30808 评论:0 收藏:2 手机
分类: .NET Core

前言:今天上午都在搞这个,重新创建了很多次新的Grpc项目,也下了很多次不同的Grpc.AspNetCor包,未果,因为这个错与VS2019使用和创建项目无关,算是一个奇奇怪怪的错,所以来记一哈

创建一个Grpc

如下图:

Grpc服务创建

正常情况下会生成如下项目:

Grpc项目

我遇到的错就会这样显示:

错误情况视图

看见打开的GreeterService.cs文件应该可以看到是没有将<Protobuf Include="Protos\greet.proto" GrpcServices="Server" />加入配置中,但又想了哈,这个好像是默认生成没有生成成功,双击项目名称可以看到配置中其实存在<Protobuf Include="Protos\greet.proto" GrpcServices="Server" />代码,但是我们右击项目名称->点击在文件资源管理器中打开文件->点击obj->点击Debug->点击netcoreapp3.1。查看文件并没有生成有关greet的两个类;并且自动下载的包好像也有问题。

解决包的下载问题

程序包源

之前一直用的一直用的第一个源和第二个源,今天添加第三个源来进行包的下载,重新下载后包的确不再报错,但是GreeterService.cs里的报错依旧不减且还报出一个protoc-gen-grpc:系统找不到指定的路径。--grpc_out的一个奇奇怪怪的错,这个才是错的重头!!!

protoc-gen-grpc:系统找不到指定的路径。

百度好多次,总结来说就是账户名是有特殊字符或者中文,我开始以为是VS2019的账户,进行了账户名更改,结果并没有什么变化,后面想了一哈报错路径找不到,那应该是计算机用户账户名的错咯!改了账户名依旧没有变化,看到C盘里有一个用户文件夹里面有一个以计算机用户名为名称的文件夹

C盘文件

我尝试更改那个中文名称的文件夹,右击后却没有重命名选项,如果需要更改这个文件夹则需=>Win+R->输入regedit并点击确定->点击’计算机’->点击’HKEY_LOCAL_MACHINE’->点击’SOFTWARE’->点击’Microsoft’->点击’Windows NT’->点击’CurrentVersion’->点击’ProfileList’->单击’S-1-5-21-……’->在右边面板双击’ProfileImagePath’->将Users后面的特殊字符或者中文改成非特殊字符和中文。
然后重启计算机,就可以更改C盘里Users里的那个中文(特殊字符)账户名文件夹了。

注册表编辑器

更改了那个文件夹名称后再次重启计算机,打开之前创建的项目,就会发现没有报错且服务自动生成的两个有关greet的类也生成成功。

评价

mui 关于点击事件失效的一些原因

有时候我们总会遗忘一些小细节,老是怨天怨电脑,这不行那不行的,凡是都是要细心,成功还是得看细节。所以说,以后我们敲...

关于报错的一些小错误

Uncaught SyntaxError: missing ) after argument list at siren.html:36今天做项目的时候发现了这个错误我们在写JS的时候...

关于System.InvalidOperationException:“未找到具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序的实体框架提供程序...

C#的后台遇到这种错误 System.InvalidOperationException:“未找到具有固定名称“System.Data.SqlClient”的 ADO.NET 提供...

关于vs没有引用包的在线安装

打开vs=&gt;工具=&gt;NuGet包管理器=&gt;程序包管理器控制台在控制台执行命令jsos序列化反序列化用到的引用包:install-pack...

关于中间件和过滤器

中间件(Middleware)的作用中间件的运行方式中间件(Middleware)和过滤器(Filter)的区别什么情况我们需要中间件怎么样...

关于三层架构以及分层的理解

首先,对软件分层,是有必要的,不管是从可维护性角度,还是从解耦的角度。其次,被滥用,这个是的,很多人,并非真正理解...

关于七牛云不能创建文件夹的理解

云存储是没有文件夹这个概念的。不管哪家,基本都是 Key-Value 形式存储文件的(为了分布式好做索引),Key 就是文件标识,...

关于tnblog简版搜索

tnblog简版搜索支持多个关键字,关键字之间可以使用空格隔开,或者下划线隔开。如果是空格格式则是or连接,满足一个即可,...

关于tnblog markdown

我们对markdown进行了深度的优化和高度的自定义功能比如更人性化的即时预览效果扩展语法等并且持续不断的完善优化中tnlog m...

关于httpclient调用webapi接口,设置cookie无效的原因

通过httpclient调用接口改cookie没有用 HttpContext.Response.Cookies.Append("token", tnToken.TokenStr); 他不会响应到...

关于Angular常用的创建命令。

在Angular开发中常见的一些命令创建命令ng generate component example生成组件带有模版ng generate component example -it...

关于bootstrap 网格系统row间距问题

比如我们给row设置一个边框 可以看到是没有对齐的 是因为row本身是一个间距设置的,有个负数 所有不想要这个间距我们...

关于点击时悬浮当前位置div部分显示不全问题

//点击触发悬浮div可以看看这篇 :https://www.tnblog.net/15736469932/article/details/5137 t为当前table点击事件的top ...

带货达人告诉你关于主播带货你所不知道的两个新维度!

文/全民带货达人信息密度和主观流速什么意思呢?很简单,也就是在有限的时间内如何让用户有效的接受到良性的产品信息、引导...

关于Response.Cookies.Remove无法删除cookie的原因

因为cookie是存储在客户端中的真正操作cookie的应该是浏览器的,而Response.Cookies.Remove其实只是对Cookie这些集合进行操...