代码改变世界

使用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格式。如果指定的文件不存在再下载。