使用PowerShell创建NuGet的本地库
2010-11-15 22:45 杰出的世界 阅读(685) 评论(2) 编辑 收藏 举报MVC 3 RC 出来了一段时间了,最近在研究NuGet。觉得每次安装包的时候,都需要联网。有些麻烦。
可以使用下面的代码来下载所需要全部的包。
代码如下:
代码
$webClient = New-Object System.Net.WebClient
$feed = [xml]$webClient.DownloadString("http://feed.nuget.org/ctp2/odata/v1/Packages")
$destinationDirectory = "本地的路径"
$records = $feed | select -ExpandProperty feed | select -ExpandProperty entry | select -ExpandProperty content
for ($i=0; $i -lt $records.Length; $i++) {
$url = $records[$i].src
$startOfQuery = $url.IndexOf("?p=") + 3
$fileName = $url.Substring($startOfQuery, $url.Length - $startOfQuery)
$fullPath = ($destinationDirectory + "\" + $fileName)
$webClient.DownloadFile($records[$i].src, ($destinationDirectory + "\" + $fileName))
}
使用时,只需要修改下本地的路径即可。
在VS2010中的设置,就是Tools->Options->Package Manager,Name随便指定一个,Source填本地的路径,点击Add后,在上面的列表选中新添加设置为默认项即可。
想实现增量下载,只需要在处理的时候,判定下指定的文件名是否存在即可。因为现有的打包的格式是按照包的版本号打包的。打包的格式为ZIP格式。如果指定的文件不存在再下载。