精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
随着开源的发展,越来越多的开源项目被用于商业开发,这些开源项目往往以动态链接库DLL形式加入到开发项目里,这也让Windows平台开发也遇到了Linux平台开发下的通用难题:库依赖难题。这个难题和依赖的项目关联度有关,比如A依赖B,B依赖C,C依赖D,会有这样一个依赖链,在初学者处理这样的依赖链时,象解迷宫一样,非常痛苦。库依赖难题也和从哪里下载依赖项目的源代码和库文件有关,有时候有提示,但是根据提示到网站上手工下载文件也麻烦。
NuGet就是解决库依赖问题的工具,它会自动解析配置信息,根据配置信息在远程服务器上自动下载依赖的库文件,下载后放到开发项目下的正确目录下,保证下载后就能支持编译。NuGet在VS2013开发平台上开始使用,降低了开发者处理库依赖难题的难度,非常好用。
不过经常用VS2010和低版本平台的朋友,在初次使用NuGet时,会有些临时性的迷惑,这里就对没反应问题给出解决方法。
上文说了,NuGet可以从远程服务器上下载库,具体从哪些远程服务器,是可以配置的。在编译时,如果NuGet提示窗口进度条长期不变化,最后在控制台窗口里有还原失败和超时这样的提示时,要注意配置下服务器,看是不是用的服务器没有开启或不能使用。
在最近使用cefsharp开发时,就遇到了没反应问题,库总是下载失败,项目编译不了,浪费了时间,后来正常开启NuGet后,库快速下载完成,自动配置完成。
在解决方案视图里,右键点击项目,在出现的右键菜单里点击"管理 NuGet程序包",会弹出如下配置界面:
在这个界面上,左边上半部提示可以从哪些服务器下载,比如“nuget.org”和微软的服务器。如果进度滚动条变来变去,一直没结束,直到提示操作超过。这个超时,可能就是nuget.org没反应,也有可能是连接一些非根服务器,非根服务器在可靠性上不如根服务器造成,把这些非根服务器去掉不使用,可能会解决超时问题。点击上图左下角的“设置”按钮,在如下界面里可以去掉非根服务器的使用。
在上图所示界面里,如果哪个服务器不想用,取消CheckBox的选中,把对勾去掉就可以了。点击“常规”按钮可以对NuGet进行更多配置,如下图
第一个勾去掉,则让VS2013不使用NuGet下载程序包。