我只有我的其他項目的名稱/位置,但我不想要求開發人員自己添加項目依賴關係。 所以我的prebuild事件需要通過某種msbuild魔術添加「引用」(=使當前項目依賴於另一個的任何東西)。 這可能嗎?如何使我的項目通過msbuild依賴於其他項目?
期望中的僞代碼:
<Task Name="MyOwnPrebuild">
<AddProjectDependencies ItemGroup="@MyProjectPaths" />
</Task>
在那裏我會通過iteratating在我的窗口充滿了@MyProjectPaths陣列遞歸文件夾中的一些其他任務調用此人之前。
這是不可能的。標準雞與雞蛋,當MSBuild決定開始運行預生成事件時,它已經計算出依賴關係。試圖再次更改它們不起作用。不要隱藏依賴關係,客戶端程序員在遇到問題時不會有機會找出錯誤。 – 2014-10-30 12:30:09
「到MSBuild決定開始運行預生成事件時,它已經計算出依賴」至少從查看Common.CurrentVersion.targets中的CoreBuild它不應該是真正的你說的ResolveReferences;在PreBuildEvent之後。 – Blub 2014-10-30 12:32:26
.targets文件中的一個或多個訂單不相關。你可以很容易地自己推理出來,如果沒有必要的話,MSBuild確實不會構建任何東西。當然,在開始執行任何操作之前,它需要知道依賴關係是否發生了變化,包括運行預生成事件。 – 2014-10-30 12:37:34