由于项目需要,准备搭建一台自己的NuGet服务器,参考了部分博客文章,都是基于NuGet.Server来搭建的,一般情况下,基于NuGet.Server搭建的可以直接使用,但是用了一段时间发现上传了很多测试包,删除却没有一个快捷的办法(目前好像只能通过NuGet客户端进行),于是乎有了下面的内容。
本文搭建的NuGet服务器主要基于MVC项目实现,具体步骤为:
1. 新建一个MVC项目,过程如下
2. 安装NuGet.Server包
点击 我接受
完成之后,发布已经可以直接使用了,但是,此时,并没有我们想要的 管理界面
3. 改造homecontroller
4. 增加PackageController
这里,我们借用IServerPackageRepository接口下的方法来删除包
其他界面改造不在详表,最终界面如下:
相关源代码已经放到了github上:https://github.com/cxwl3sxl/nuget
如果想直接下载部署包的化可以下载release包 https://github.com/cxwl3sxl/nuget/releases
其中:1.1版本增加了包多选删除功能
注意:以上方法搭建的NuGet服务默认最大支持30M的包,如果超过了可能会报NuGet.Server - 406 (Not Acceptable) Error的错误
具体解决办法为修改web.config文件中的内容为如下格式:
<system.web>
<compilation targetFramework="4.6" />
<!-- maxRequestLength is specified in Kb -->
<httpRuntime targetFramework="4.6" maxRequestLength="307200" />
</system.web>
将原来的30M改成了300M