2016-05-12 35 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 
相關問題