2017-08-02 18 views
0

我在我們的項目的VSTS中創建了一個構建定義。 在的NuGet安裝步驟我註明:NuGet省略了一些軟件包,但手動恢復它們通過項目通過VS2017取得成功

Path to solution or packages.config: DirectoryName/AppServer/.nuget/NuGet.Config 
Path to NuGet.config: DirectoryName/AppServer/.nuget/NuGet.Config 
Installation type: Restore 
NuGet arguments: -PackagesDirectory DirectoryName\SDK\NuGet\packages 
NuGet Version: 3.3.0 

當我運行構建執行,我得到的信息在控制檯上:

2017-07-31T11:39:10.2496191Z ##[section]Starting: NuGet restore DirectoryName/AppServer/AppServer.sln 
2017-07-31T11:39:10.2808709Z ============================================================================== 
2017-07-31T11:39:10.2808709Z Task   : NuGet Installer 
2017-07-31T11:39:10.2808709Z Description : Installs or restores missing NuGet packages 
2017-07-31T11:39:10.2808709Z Version  : 0.2.31 
2017-07-31T11:39:10.2808709Z Author  : Microsoft Corporation 
2017-07-31T11:39:10.2808709Z Help   : [More Information](https://go.microsoft.com/fwlink/?LinkID=613747) 

它恢復了很多包,但有些沒有恢復。沒有錯誤引發,沒有警告,他們只是省略,並導致生成解決方案任務失敗。

但是,當我登錄到虛擬機(Azure)並在Visual Studio 2017中打開解決方案並逐個單擊其中的每個項目並右鍵單擊它時,然後恢復NuGet包,所有內容均成功下載。然後構建定義執行是成功的,條件是我在獲取源代碼步驟中將Clean設置爲false。

+0

您能否在此發佈詳細記錄?另一方面,你說路徑解決方案或packages.config:DirectoryName/AppServer/.nuget/NuGet.Config,它是解決方案或packages.config,你有錯誤嗎? –

+0

如果您在解決方案的路徑或packages.config中指定解決方案,結果如何? –

+0

另一方面,有.nuget文件夾,你是否將vs2013項目升級到vs 2017? –

回答

0

這引起了我的注意:

並逐一

點擊每一個項目在它這可能不是你的VSTS自動化在做同樣的,是嗎?

一個可能的原因是,您的項目之一是引用它的packages文件夾中的nuget資源,但引用從packages.config中缺少。如果其他項目已經正確引用了包,那麼它恰巧可用,但只有當某人先編譯該項目時纔可用。如果該項目沒有建立,那麼你錯誤配置的項目也會失敗。

所以我建議你:

  1. 檢查生成錯誤,以確定哪個包是造成麻煩
  2. 驗證給定的包確實是正確設置在packages.config在失敗的項目和資源從正確的文件夾加載(版本匹配)。

此外,您應該通過手動編譯每個項目來驗證日誌和生成錯誤,而不是複製構建服務器正在執行的確切步驟。通常是清理和構建整個解決方案。

1

嘗試使用的NuGet 4.0.0版(的NuGet安裝任務的高級部分指定它)。

另一方面,有1.*2.*版本的NuGet任務可用,您可以使用最新版本的任務。

enter image description here

相關問題