2015-12-01 111 views
0

我正在嘗試爲我的項目創建CI Continuous Integration我的項目結構如下。無法連接錯誤使用TFS的持續集成

Solution 
|_ WebApi 1 
|_ WebApi 2 
|_ WebApi 3 
|_ Website "Single Page App" 

我創建了一個網絡部署的每個服務每次我需要發佈的同名應用它來部署自動服務器。

我創建了一個批處理腳本來運行發佈,所以這是半自動的方法。

我想創建一個CI Continuous Integration所以我創建了一個新的生成定義到我的項目,並添加如下配置

General

Trigger

Source Setting

Build Definition

Process

以下錯誤在我看來 Error

我在生成定義的配置很想念?

+0

這些只是缺少依賴關係。你是否在源代碼管理中包含了你的軟件包?你只需要NuGet repositories.config或packages.configs,否則NuGet將不會得到這些包,因爲它認爲它已經有了它們。或者,您是否在解決方案屬性中啓用了包恢復? – Rodders

+0

我已經在解決方案中啓用了Nuget,並通過添加全局環境變量「EnableNuGetPackageRestore」在該服務器中啓用Nuget,並將其值設置爲true 關於將我的軟件包包含到源代碼管理。我不應該把它包括到源代碼控制中,因爲我想讓nuget發揮它的作用,所以我讓nuget更新包中的每個解決方案中包含的 –

+0

只需要清楚。您的packages.config文件在源代碼管理中,但實際的軟件包本身不是。正確? – Rodders

回答

1

根據錯誤信息,問題可能是由於Nuget包未正確恢復而導致的。

您可以按照此博客中的步驟恢復軟件包:https://docs.nuget.org/consume/package-restore/team-build)。

一些關鍵的步驟是:

  1. 添加nuget.config和.tfignore文件的解決方案。

  2. 在解決方案文件夾的根路徑下添加一個build.proj文件。

  3. 在解決方案文件夾的根路徑下創建一個名爲tools的文件夾。在工具文件夾下創建NuGet子文件夾,在工具\ NuGet路徑下下載並保存nuget.exe。

  4. 將nuget.config,.tfignore,build.proj和tools \ NuGet \ nuget.exe簽入到TFS版本控制中。

  5. 修改構建定義以選擇構建build.proj文件。
    然後,您將在TFS構建過程中成功恢復NuGet包。
+0

感謝您的幫助,但我仍然有一個問題在'C:\ Builds \ 5 \ ADSVC \ HCMS - 繼續Integration \ src \ build上運行。 proj'但文件夾'5'不包含在'Builds'文件夾中,當偶然傳遞爲'C:\ Builds \ 1 \ ADSVC \ HCMS - Continues Integration \ src \ build.proj時,我只有一個名爲'1'的文件夾'構建成功 –

+0

該數字應該表示構建代理,您是否有多個構建代理?你在使用TFS 2013嗎? –

+0

我沒有多個構建代理只有一個。是的,我正在使用TFS 2013和建設代理屬性,我喜歡以下'$(SystemDrive)\ Builds \ $(BuildAgentId)\ $(BuildDefinitionPath)'我認爲這裏的問題是'$(BuildAgentId)'是隨機的我使它成爲靜態 –