2012-12-13 24 views
1

我們爲項目中的構建解決方案配置了新的構建定義。該解決方案有多個項目。項目設置爲將dll複製到一個公用文件夾「Build」,並且相互引用的項目使用此位置來引用相關的Dll。設置Build definitin之後,build工作正常。但是當我在其中一個項目中創建了一些新類時,構建開始失敗,因爲「構建」文件夾僅包含較舊的Dll,而不包含該類,而構建TFS時將所有新構建的dll複製到「二進制文件」夾。然後用「Build」文件夾中較舊的dll替換這些dll。 我已經嘗試了幾種方法,但仍然無法弄清楚爲什麼「生成」文件夾沒有得到最新版本的Dll更新。請告訴我,我在哪裏丟失配置?TFS構建 - 引用舊的dll而不是新的dllls的項目

回答

0

我已經通過手動刪除服務器上「Build」文件夾中的Dll來解決此問題,因此現在使用新類生成工作是因爲新生成的dll不會被「build」文件夾中的複製操作所取代。

+0

那麼現在在構建過程中沒有任何東西被複制到「Build」文件夾中,因此它總是空的? – MikeR

+0

沒有生成文件夾更新與新的dll,它並沒有超過該文件以某種方式.. –

0

您應該檢查項目屬性,也許根據您正在構建的配置(調試/發佈),您的輸出轉到另一個位置。 在TFS中籤入了「Build」文件夾嗎?在這種情況下,這些文件在構建過程中是隻讀的,不能被複制覆蓋。

爲什麼使用此Build文件夾而不是添加項目引用insisde解決方案?這將使其與輸出位置無關,因爲該過程會自動知道要搜索的位置。

+0

否生成文件夾未簽入。主要問題是誰在構建過程完成後將生成文件夾中的dll複製到二進制文件夾。 –

+0

MSBuild應複製項目文件(.csproj/.vbproj)中定義的結果。它在你的開發者機器上工作嗎?也許這是MSBuild不允許將文件複製到「Build」文件夾的安全問題。 您的解決方案中是否包含項目參考?不應該有一個,因爲你直接引用另一個位置的輸出DLL。 – MikeR

相關問題