1
我正在使用Cake 0.23.0,很高興地看到任務依賴關係已被擴展。不幸的是,似乎即使是最新版本也不能解決我的問題。 或者我只是做錯了什麼?在Cakebuild中創建任務序列
我想達成什麼
- 假如我有相等多種平臺(如x86或x64)定義的任務
- 我想定義首先是一個生成序列爲x86平臺執行所有任務。一旦完成一個初始化任務應該被執行,只是將平臺設置爲x64,然後應該執行與x86一樣的任務。
- 實施例序列: 任務初始化86 - >任務A - >任務B - >任務C - >任務初始化64 - >任務A - >任務B - >任務C
當前行爲 由此產生的序列是 任務初始化x86 - >任務A - >任務B - >任務C - >任務初始化x64
看來,Cake一次只遵守任務依賴關係。我已經定義它像圖所示:
Task("Compile-All-Platforms")
.IsDependentOn("Init-86")
.IsDependentOn("A")
.IsDependentOn("B")
.IsDependentOn("C")
.IsDependentOn("Init-x64")
.IsDependentOn("A")
.IsDependentOn("B")
.IsDependentOn("C");
你好雷諾, 謝謝你的回答。我想我可以儘量減少任務和功能的數量。基本上這些功能可以完成我需要的工作。 我建議改進文檔,因爲對於我來說,直到遇到麻煩時才明確表示C#Make的行爲如此。 –
......另一件重要的事情應該在新手文檔中更好地突出顯示:如果您在具有如「IsDependentOn ...」定義的依賴關係的任務中使用「WithCriteria」,則將執行任務,儘管依賴不被滿足。 一旦你知道這個,你可以處理它。 –
您可以在https://cakebuild.net/提交您的意見,因爲我不是Cake的貢獻者。這就是說,如果你的構建步驟足夠複雜,你可以(應該?)使用Cake擴展模塊來封裝每個構建步驟。您可以在方法中調用它兩次,並在調用之間更改配置。但是,你會有一個單一的構建腳本,雖然我很確定你更好的步驟,利用任務依賴關係。 請注意,我們不知道您的系統的實際複雜性,這個回答理所當然有3個項目與2個目標平臺。 –