2017-05-17 37 views
0

我正在嘗試在TFS2015中設置自動構建。目標是在簽入時自動構建和測試解決方案,如果所有內容都通過了,那麼將創建一個新的Nuget包並將其放置在本地存儲庫中。未在TFS上提取的Nuget包構建

這個過程適用於我的第一個解決方案,這是一個沒有依賴關係的簡單項目。從該項目創建的Nuget包隨後被另一個項目用作依賴項。

在Visual Studio中構建時,此工作正常。該軟件包正常下載並提取。但是,當我檢查到TFS的第二個項目時,自動構建不能正確處理這個包。該軟件包從本地存儲庫中恢復,但未提取。這意味着構建失敗,因爲它無法找到它需要的實際DLL。

我也在項目中使用EntityFramework,它工作正常。該軟件包已下載,但隨後也會提取。

我已經嘗試了此question中給出的解決方法,但TFS服務器沒有C:\ Users.nuget \ packages文件夾。

我也嘗試使用命令here來清除Nuget緩存,但再次沒有幫助。

如果我手動提取由自動構建下載的Nuget包,然後再次運行構建,那麼它的工作原理就是暗示問題不在包內?

Nuget.exe版本是3.5。 .Net版本是4.5標準。 Packages在packages.config中引用,也可以通過項目引用進行引用。 Nuget.exe正在用於還原。

關於爲什麼本地包沒有被提取的任何想法?

+0

您正在使用什麼樣的項目?經典.net,.net核心/標準(>「SDK」 - 項目)。 packages.config或ProjectReference?你使用nuget.exe來恢復? –

+0

.Net版本是4.5標準。 Packages在packages.config中引用,也可以通過項目引用進行引用。 Nuget.exe正在用於還原。 – ChrisW

+0

而當您刪除本地解決方案包文件夾時,它是否可以在您的機器上運行?我懷疑packages.config中缺少包引用,並且可能偶爾會在您的開發機器上運行。 –

回答

0

原因是我不小心在這個項目的包文件夾中檢查了一些點,所以似乎來自我的本地Nuget文件夾實際上只是被複製出來的包文件夾中的項目。

從TFS中刪除packages文件夾解決了這個問題。

仍然不確定爲什麼它沒有提取包在任何情況下,但問題解決。

+0

請標記爲答案。謝謝 –

+0

我明天才能夠 – ChrisW