2010-11-24 168 views
1

我開發了一個大的MSBuild項目來構建我們解決方案的一部分。有很多事情正在進行 - XML解析/替換,Windows服務,遠程複製等。因此,儘管我盡了最大的努力在評論中添加修飾,但文件的管理變得非常困難。作爲一個整體,我將主要的功能塊分成單獨的文件,如「XML.targets」,「Services.targets」等,並將它們導入到主要的「Build.proj」中。構建仍然有效,我立即發現它更易於管理。使用MSBuild導入模塊化項目

但是,我讀過的有關MSBuild導入功能的信息是,它應該用於導入可重複使用的目標,即不需要任何修改就可以被-any-MSBuild項目使用的目標。我在這裏創建的獨立項目與一個項目相反 - 如果不使用其他任何項目,則默認情況下會中斷。

所以我猜我問的是,即使我可以 ... 應該我?爲了組織大型項目,嚴格使用導入是否存在內在危險?有一個更好的方法嗎?

謝謝

回答

1

不,沒有固有的危險。我認爲將大型項目分割成幾個特定於某些操作的.targets文件是一個很好的決定,因爲它降低了整體的複雜性。創建可重用目標的想法意味着他們應該儘可能少地依賴於其他部分。通過類比,您可以將單獨的.targets文件視爲類。它們越不耦合 - 越好。因爲修改一個目標文件不太可能破壞整個過程。您可以放下紙面,在主要項目的中心繪製目標文件,並繪製它們之間的所有連接。假如一個目標文件覆蓋另一個目標文件,或者期望某個目標文件的某些屬性依賴於它,那麼就存在一個連接。在完美的場景中,你會得到像明星一樣的東西。
總之:你應該如果它降低複雜性