2015-10-15 138 views
0

我在TFS中有一個包含28個項目的大型解決方案。構建定義目前每次都會進行完整構建,並且工作正常。我改變了「清潔工作區」,企圖使增量編譯,但是當我改變了定義,之後排隊一個新的版本它下面的消息將立即失敗「無」:TFS - 找不到項目文件

Exception Message: The project file 'E:\Builds\43\154\Sources\MyProject\Project.smproj' was not found. (type FileNotFoundException) 
Exception Stack Trace: at System.Activities.Statements.Throw.Execute(CodeActivityContext context) 
    at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) 
    at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation) 

奇怪的是,它如果我將「Clean Workspaces」切換回「All」,再次工作。該錯誤只在設置爲「無」時纔會出現。

我該怎麼找我做錯了?

回答

0

你所做的是正確的。要啓用增量構建,只需在Visual Studio中編輯構建定義並將Clean Workspace屬性設置爲「None」。

當我們在構建定義中設置「Clean Workspace = None」時,MSBuild將跳過自動構建「不變」項目。但是,它會在構建過程中節省大量時間,但如果配置不當,可能會導致很多頭痛。輸入和輸出之間必須有一對一的映射。您可以使用轉換來使目標識別此直接映射。來自微軟的更多信息:https://msdn.microsoft.com/en-us/library/ee264087(v=vs.140).aspx

考慮到你提到的場景,我不會建議增量構建。通過減少構建完成時間來減少您受益的工作空間,您可能會遇到衝突。