在我上一個項目中,我們使用MSBuild作爲腳本語言。 (是的,真的!)我們還編寫了數百個自定義MSBuild任務,用於C#中更有意義的部分。 (我甚至寫了一個MSBuild任務來生成MSBuild任務的樣板代碼,是的,它自己消耗了)在.NET中管理依賴關係樹的最佳方式是什麼?
儘管我不建議其他人採用這種方法,但我發現其中一個非常有用的東西是內置的依賴管理。正如你所期望的那樣,很容易表達依賴關係,並讓MSBuild負責滿足它們。例如,我們軟件中幾乎每一步都需要將某組文件複製到某個特定位置。你可以很容易地寫:
Step1: CopyFiles
Step2: CopyFiles, Step1
,當你執行Step2
,也只是將文件複製一次。
構建和滿足依賴樹是軟件中很常見的。我希望MSBuild團隊將他們的依賴管理代碼,從MSBuild中解耦出來,並將其轉移到任何人都可以使用的.NET Framework中。那麼,你認爲用這種方式管理依賴關係的最佳選擇是什麼?