你的位置:首页 > ASP.net教程

[ASP.net教程]VS项目中使用Nuget还原包后编译生产还一直报错?

Nuget官网下载Nuget项目包的命令地址:https://www.nuget.org/packages   

 

今天就遇到一个比较奇葩的问题,折腾了很久终于搞定了:

问题是这样的:我的解决方案原本是好好的,但是其他朋友加个一个项目,我获取最新后,编译始终报错,说是这个项目缺少Nuget包引用,可是我在编译时明明已经还原了该项目引用的nuget包,同时也手动就行了nuget的包还原都不行,百思不得其解。报错如下:

 

报错信息说是:本计算机上面缺少此项目Seagull2.YuanXin.WebApi引用的nuget包,让我使用Nuget去还原。  

缺少文件位置为:..\..\packages\Grpc.Core.1.0.0\build\net45\Grpc.Core.targets,完整本地路径为:

报错项目--》父目录--》父目录--》packages--》...

D:\SourceCode\MCSFramework\02.Develop\MobileWebApp\Seagull2\packages\Grpc.Core.1.0.0\build\net45\Grpc.Core.targets.bll

 

尝试处理办法:

1-使用项目-(右键)--管理nuget程序包工具:

      不是让我还原吗,那我就去还原,我在我报错的项目中找了下已安装的Nuget包,发现这个包已经被安装了,那怎么还原呢?  于是卸载,更新,再重新安装都没用。

2-使用nuget控制台-(工具-Nuget包管理器-程序包管理控制台)--使用命令安装Grpc.Core.1.0.0到Seagull2.YuanXin.WebApi里:

     Install-Package Grpc.Core

     提示已存在,删除,重新装上还是一样失败。

3-直接Copy:

  不是说我这个路径下缺少文件吗?  那我直接把下载好的包放在里面总可以了吧?   我个人测试,还是不行,编译还是报错。

 

终极解决办法:

  由于该项目是别人添加的,这个项目的nuget包配置,已经被别人在他的解决方案里配置死了,因此我们可以(也可以说只能吧)通过,缺少文件的根目录下寻找那个含有该项目的解决方案,找到该项目直接编译就可以了(编译设置为下载缺少的nuget包),编译成功后,返回你的项目再编译就没问题了。

是不是解决了?  那就给我点个赞,留个言吧^^

     

备注:  

A--还原Nuget包前,一定要确保你配置了该项目的包源:如果你没有那就找别人要吧。

工具-选项-Nuget包管理器-程序包源

B--配置编译时自动还原缺少的nuget包:

工具-选项-Nuget包管理器-常规 ---》勾选