查看: 773|回复: 0

[.NET源码] Nuget连接失败的问题

发表于 2018-3-23 08:00:05

---恢复内容开始---

.net 项目开发管理中我们经常使用Nuget管理我们的类库。由于某些原因 nuget v3的镜像源https://api.nuget.org/v3/index.json 经常连接不上。

博客园提供了镜像源 https://nuget.cnblogs.com/v3/index.json 具体参见: http://www.cnblogs.com/cmt/p/nuget-mirror.html.

但是貌似这个也是依赖于nuget的源的,也是经常连接不上。微软官网也有一个镜像源 http://go.microsoft.com/fwlink/?LinkID=206669。总之这些 源 经常会连接不上,各种吐槽中。。。。。

参考网上的办法添加本地源 指向本地的packages文件夹。这种方式可以解决一部分问题但是 治标不治本。

首先我们知道 有些包是依赖于其他的包的 加载这些包的时候 会去搜索依赖包,如果搜索失败 也是安装不了的。而且本身也没有使用到nuget的自动依赖加载功能。

然后 就需要搭建内部的nuget源了。搭建一个空的web项目 安装 NuGet.Server ,然后发布就好了。或者使用我提供的包直接发布到你的iis上也行 ,地址见下文。

2.13版本后需要.netFramework4.6以上 。NuGet.Server安装好后会生成default.aspx页面。发布这个网站。或者使用我提供的发布包。文章结尾提供下载地址。

3.使用nuget explorer发布自己的包到iis网站上。

requireApiKey修改为false 然后就客园为所欲为啦

发布好后访问 ,看到这样的界面就成功啦:

这是操作界面 这是搜索界面 这个连接还是比较稳定 的 基本上都搜索得到。

当然 也可以发布到nuget官方网站 只不过要注册自己的key。使用 这个界面提交或者 到nuget官方网站直接上传nuget文件。

vs里面配置

下载包慢或者失败时看输出窗口

找到慢的 package包 到 nugetexolorer里面 发布到自己的源地址。由于nuget包可能存在依赖和版本关系 所以可能需要多次操作才能缓存到iis网站内,不过下次使用的时候直接从内部iis网站里面搜索会快很多,而且也有利于公司管理自己的nuget包。

总结:真正有用的是 NuGetPackageExplorer,这个可以搜索可以下载 可以解压和打包,发布一个iis网站是为了分享nuget包有利于公司内类库管理。

附 相关资料和下载地址

NuGetPackageExplorer 下载地址(github): https://github.com/NuGetPackageExplorer/NuGetPackageExplorer

我的项目包:https://github.com/wtujvk/LearningMeCSharp.git

直接查看: https://github.com/wtujvk/LearningMeCSharp/tree/master/LearningMeCSharp/NugetServer.Demo

我编译后的包(可直接发布到iis): https://pan.baidu.com/s/1gJhH6XbnQe3cI3YuB21nNA 密码:w35j

---恢复内容结束---



回复

使用道具 举报