Nuget私有服务搭建实战
最近更新了Nuget私有服务器的版本,之前是2.8.5,现在是2.11.3。
Nuget服务器的搭建,这里有篇很详细的文章,跟着弄就好了:
https://docs.microsoft.com/en-us/nuget/hosting-packages/nuget-server
不过我在做的过程出现了个令我非常困惑的问题:程序按部就班做好我就扔到IIS上,但一直提示404,但以前一直是好的,且这个问题基本上Google不到相关信息。经过一番倒腾排错之后我郁闷的发现错误的原因在于我的项目名称起了一个跟Nuget.Server的包一样的名字,也叫“Nuget.Server”,这样我的Web项目生成的dll会覆盖掉Nuget.Server.dll,这真是个小概率低级错误……但却浪费了我不少时间。
部署好之后上述文章还提到了一个值得关注的地方,那就是nuget包的存放目录,应该转换为新的格式,这样能大幅度提高nuget包获取和浏览的性能,具体资料:
https://blog.nuget.org/20151118/nuget-3.3.html#folder-based-repository-commands
按部就班做就行了,如果服务器上没有nuget.exe的话,可以在这里下载到:https://www.nuget.org/,我是直接把nuget.exe放到system32目录下了。
这么一来我也感觉到列nuget包的时间显著提高了,但如何把新生成的nuget包放进去呢?上面的文档提供的方法是:
nuget add my.nupkg -Source c:\shared\nuget_repo
但每次都敲命令行麻烦,如果有多个包要add的话那更麻烦,作为一名技术人员,看到什么不爽的地方当然是要想办法改进,因此我做了一个add-to-repo.bat的批处理文件:
for %%i in (*.nupkg) do nuget add %%i -Source c:\shared\nuget_repo pause
不管目录下有几个待增加的nupkg文件,不管它们叫啥名字,只需要双击执行一下这个脚本即可。