2016-05-12 34 views
3

我试图将多个nuget软件包一次推送到私有的VSTS nuget服务器。用一个命令将多个软件包推送到私有的nuget(VSTS)

我搜索DOCO但无法找到一个批量推命令。我正在使用下面的命令,它似乎覆盖了VSTS上已有的nuget软件包。

nuget push mynuget.nupkg -Source https://myvsts.pkgs.visualstudio.com/DefaultCollection/_packaging/SitecorePackages/nuget/v3/index.json -ApiKey VSTS 

UPDATE:

我用推* .nupkg然而,我只能看到8.1.x版本推。

enter image description here

谢谢。

回答

4

无法覆盖VSTS上的现有软件包。 nuget.exe允许使用通配符进行推送,因此您可以说nuget push *.nupkg -Source https://myvsts.pkgs.visualstudio.com/DefaultCollection/_packaging/SitecorePackages/nuget/v3/index.json -ApiKey VSTS

+0

感谢@MattCooper但是当我* .nupkg尝试,它显示错误消息“无法处理请求:‘冲突’远程服务器返回409 Confilct ......” –

+0

这是因为它不可能覆盖相同的包id +版本。关于[不变性],请参阅此主题(https://www.visualstudio.com/get-started/package/feeds/immutability)。 –

+0

好的,我删除并发布了2个包,其中包含* .nupkg。但是,我只能看到最后一个。不知怎的,最后似乎忽略了第一个。请参阅原始帖子附上的屏幕截图 –

0

下面是一个powershell脚本,您可以使用它来将NuGet包批量推送到VSTS提要。它会忽略任何.symbols.nuget文件:

set-location \\path\to\nugetpackages 

$files=get-childitem | where {$_.Name -like "*.nupkg" -and $_.Name -notlike "*symbols*"} 

foreach($file in $files) { 
    .\NuGet.exe push -Source "MySource" -ApiKey key $file.name 
} 
0

首先,我从那时候“”排除之前上传包文件夹,它仅包含不存在于本地服务器软件包。之后,我用下面的命令,它工作正常。

nuget.exe push -Source "MyFeedName" -ApiKey VSTS packages\**\*.nupkg 
相关问题