我遇到了一些msbuild文件的問題。在啓動時檢查一個屬性,具體取決於選定的目標
我想構建有三個目標,在這個順序執行:
Cleanup
:清理上次構建Build
的輸出:實際構建CopyFiles
:任務打包生成的輸出更容易部署
現在的問題是:我想要一個屬性(ReleasePath
)fo r由調用者明確設置的CopyFiles
目標。另外,如果只調用Cleanup
和Build
任務,則調用者不必設置輸出路徑。
我第一次嘗試一直是:
<PropertyGroup>
<ReleasePath></ReleasePath>
</PropertyGroup>
<Target Name="Initialize">
<Error Text="The ReleasePath property isn't defined" Condition="'$(ReleasePath)' == ''"/>
</Target>
<Target Name="CopyFiles" DependsOnTargets="Initialize">
</Target>
它工作正常,但CopyFiles
前右Initialize
目標執行,即Build
後。 Build
目標可能需要很長時間才能執行,因此如果出現問題,我希望立即通知用戶。
所以基本上,有沒有辦法在開始時運行Initialize
目標,但只有在目標中包含CopyFiles
時纔有效?
我也想過把Initialize
項目的InitialTargets
屬性,然後把一個條件只有CopyFiles
選擇執行這一目標,但讓我吃驚我找不到包含目標列表中選擇一個屬性由來電者。
我一直希望有一些魔術來避免添加另一個屬性,但我擔心你是對的。謝謝! –