我正在評估TFS Build 2013在企業環境中的使用。 TF本身一直運行良好,今天我設置了構建組件。到目前爲止沒有問題。TFS Build 2013 - 無法解析主參考
我從源代碼中抓取了一個相當簡單的項目,並使用標準默認值創建了一個手動觸發的構建定義。
我跑了一個測試版本,並立即用一個主要參考命中一個問題。在日誌中的錯誤是:
C:\ Program Files文件(x86)的\的MSBuild \ 12.0 \ BIN \ AMD64 \ Microsoft.Common.CurrentVersion.targets(1697,5):警告MSB3245:無法解析此參考。找不到程序集「XYZ.dll」。
那麼我們如何存儲和使用引用有點背景的背面: 我們創建一個根文件夾的解決方案,這裏面無二項目正常.sln文件和子目錄。然後,我們在這個級別添加一個「引用」文件夾,該文件夾包含項目所需的所有DLL。這些通常是來自其他內部代碼庫的DLL,但也包括某些第三方DLL(例如舊的企業庫DLL,以及其他我們無法從NuGet獲得的內容)。
每個需要這些DLL的項目都會引用這個文件夾(並且從檢查.proj文件我可以看到鏈接存儲爲「.. \ References \ XYZ.dll」等。這對本地構建以及沒有人有過問題,參考文件夾被TFS檢查,每個人都得到一份副本,從我讀過的通過嘗試診斷我們的問題,這是一個相當普遍和可以接受的管理參考的方式。 ,我收到的構建錯誤如上所述,基本上說構建目標無法從References文件夾中找到DLL,日誌繼續列出所有試圖找到它的地方
Crucially(it WOU第一行顯示爲:
對於SearchPath「{HintPathFromItem}」。 考慮到「.. \ References \ XYZ.dll」,但它不存在。
此外,它看起來在框架文件夾,各種默認彙編文件夾,GAC等等,其中沒有(當然)包含它。
所以我想知道我哪裏出了問題。我錯誤地配置了其中一個構建/放置位置嗎?是否有其他約定用於引用所需的DLL(考慮到我們的整個公司使用「.. \ References」文件夾設置,或者是否還有其他一些內容?)
我是TFS Build的新手,但我絕不是新的TFS或Visual Studio 本身。我花了大約一個小時左右谷歌搜索沒有找到任何人遇到同樣的問題,所以任何幫助將不勝感激。
感謝
UPDATE:
生成代理配置如下:
建立代理 - 工作目錄:
d:\ BuildAgent \ $(BuildAgentId) \ $(BuildDefinitionPath)
構建定義「源設置」具有(我假設)的默認值:
狀態:活動|源代碼管理文件夾:$/ProjectRoot |建立代理文件夾:$(SourceDir)
Status:Cloaked |源代碼管理文件夾:$/ProjectRoot/Drops |生成代理文件夾:
的引用文件夾這裏沒有明確配置,但是當我看在生成代理的工作目錄,我可以看到它:
d:\ BuildAgent \ 1 \客戶端名\解決方案名稱\ SRC \開發\進化\來源\ SolutionName.Solution \參考
如果我打開VS2013命令提示符,導航到包含.sln文件(也引用文件夾)的文件夾,然後運行「的MSBuild d: \ path \ to \ Solution.sln「,那麼它會成功建立,不會有任何警告或錯誤。
檢查內容: *構建定義源映射是否包含'References'文件夾? * xyz.dll是否真正到達構建代理? * TFS構建基本上在解決方案上運行'MSBuild'。嘗試從'Visual Studio的開發人員命令提示符'在本地運行,以及是否得到相同的錯誤。 – Jonathan 2015-02-23 13:58:49
@Jonathan感謝您的回覆,我已經更新了相應的問題 – Detail 2015-02-23 14:29:17