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包管理器-常規 ---》勾選