msbuild - What is the difference between 'DependsOnTargets' and 'AfterTargets'? -


मैं इन दोनों को अलग नहीं कर सकता। कृपया मदद करें!

DependsOnTargets

लक्ष्य निर्धारित करता है कि को निष्पादित किया जाना चाहिए से पहले लक्ष्य निष्पादित किया जा सकता है।

<पूर्व> & lt; लक्ष्य नाम = "DependsOn" DependsOnTargets = "DependencyTarget1; DependencyTarget2" & gt; & Lt; संदेश टेक्स्ट = "लक्ष्य: DependsOn" / & gt; & Lt; / लक्ष्य & gt; & Lt; लक्ष्य नाम = "निर्भरता लक्ष्य 2" & gt; & Lt; संदेश टेक्स्ट = "लक्ष्य: निर्भरता लक्ष्य 2" / & gt; & Lt; / लक्ष्य & gt; & Lt; लक्ष्य नाम = "निर्भरता लक्ष्य 1" & gt; & Lt; संदेश टेक्स्ट = "लक्ष्य: निर्भरता लक्ष्य 1" / & gt; & Lt; / लक्ष्य & gt; आउटपुट & gt; लक्ष्य: निर्भरता लक्ष्य 1 & gt; लक्ष्य: निर्भरता लक्ष्य 2 & gt; लक्ष्य: DependonOn

पहले लक्ष्य और बाद लक्ष्य (केवल MSBuild 4 में उपलब्ध)

यह दर्शाता है कि निर्दिष्ट लक्ष्य के पहले या बाद में लक्ष्य को चलाएं या लक्ष्य।

  & lt; लक्ष्य नाम = "इससे पहलेऔर बाद" & gt; & Lt; संदेश टेक्स्ट = "लक्ष्य: पहले औरअफ़र" / & gt; & Lt; / लक्ष्य & gt; & Lt;! - इससे पहले TargetTarget1 "इससे पहले और बाद" - & gt; & Lt; लक्ष्य नाम = "इससे पहले लक्ष्य" से पहले Targets = "BeforeAndAfter" & gt; & Lt; संदेश टेक्स्ट = "इससे पहले चलाए जाने वाले लक्ष्य: इससे पहले औरअफ़र" / & gt; & Lt; / लक्ष्य & gt; & Lt;! - लक्ष्य से पहले "लक्ष्य से पहले" - & gt; & Lt; लक्ष्य नाम = "AfterTarget" AfterTargets = "BeforeAndAfter" & gt; & Lt; संदेश टेक्स्ट = "AfterTarget के बाद चला गया: पहले औरअफ़र" / & gt; & Lt; / लक्ष्य & gt; आउटपुट & gt; इससे पहले कि पहले चलाया गया लक्ष्य: इससे पहलेऔरऔर; लक्ष्य: इससे पहले और बाद & gt; इसके बाद चलाए जाने वाले AfterTarget: BeforeAndAfter  
  • यदि आपके पास ऐसे गुणकों के लक्ष्य हैं जो समान निर्दिष्ट लक्ष्य से पहले या बाद में चलाना चाहिए, तो वे घोषणा आदेश में निष्पादित हो जाएंगे :

      & lt; लक्ष्य नाम = "इससे पहले और बाद" & gt; & Lt; संदेश टेक्स्ट = "लक्ष्य: पहले औरअफ़र" / & gt; & Lt; / लक्ष्य & gt; & Lt;! - दोनों से पहले लक्ष्य 1 और इससे पहले लक्ष्य 2 को "इससे पहले और लक्ष्य" से पहले चलाना चाहिए - & gt; & Lt; लक्ष्य नाम = "BeforeTarget1" से पहले Targets = "BeforeAndAfter" & gt; & Lt; संदेश पाठ = "इससे पहले कि लक्ष्य 1 से पहले: इससे पहले औरअफ़र" / & gt; & Lt; / लक्ष्य & gt; & Lt; लक्ष्य नाम = "BeforeTarget2" से पहले Targets = "BeforeAndAfter" & gt; & Lt; संदेश टेक्स्ट = "इससे पहले कि लक्ष्य 2 से पहले: इससे पहले औरअफ़र" / & gt; & Lt; / लक्ष्य & gt;  

इससे पहले लक्ष्य और AfterTargets का उपयोग मौजूदा बिल्ड प्रक्रिया को बढ़ा सकते हैं

उदाहरण के लिए, इस विशेषता के साथ आप कोर कॉम्पाइल ( Microsoft.CSharp.targets में परिभाषित करता है) से पहले एक लक्ष्य आसानी से निष्पादित कर सकते हैं। कि बिना आप संपत्ति CoreCompileDependsOn ओवरराइड करने के लिए होगा।

बिना AfterTargets आप कोई रास्ता नहीं आसानी से कोई विस्तार करता है, तो एक और एक के बाद एक लक्ष्य पर अमल करने के लिए है

DependsOnTargets, BeforeTargets और AfterTargets निष्पादन आदेश?

जब < Code> DependsOnTargets , BeforeTargets और AfterTargets का उपयोग उसी लक्ष्य पर किया जाता है, निष्पादन का क्रम है:

  • AfterTargets

  • <लक्ष्य>
  • P>
      & lt; लक्ष्य नाम = "मुख्य लक्ष्य" DependsOnTargets = "DefaultDependsOn" & gt; & Lt; संदेश टेक्स्ट = "लक्ष्य: मुख्य लक्ष्य" / & gt; & Lt; / लक्ष्य & gt; & Lt; लक्ष्य नाम = "DefaultDependsOn" & gt; & Lt; संदेश टेक्स्ट = "लक्ष्य: डिफ़ॉल्ट डिपेंडऑन" / & gt; & Lt; / लक्ष्य & gt; & Lt; लक्ष्य नाम = "DefaultBeforeTarget" BeforeTargets = "MainTarget" & gt; & Lt; संदेश टेक्स्ट = "लक्ष्य: डिफ़ॉल्ट से पहले लक्ष्य" / & gt; & Lt; / लक्ष्य & gt; & Lt; लक्ष्य नाम = "DefaultAfterTarget" AfterTargets = "MainTarget" & gt; & Lt; संदेश टेक्स्ट = "लक्ष्य: डिफ़ॉल्टअफ़ेर-लक्ष्य" / & gt; & Lt; / लक्ष्य & gt; आउटपुट & gt; लक्ष्य: डिफ़ॉल्टडिफ़ेंडऑन & gt; लक्ष्य: डिफ़ॉल्ट से पहले लक्ष्य & gt; लक्ष्य: मुख्य लक्ष्य & gt; लक्ष्य: DefaultAfterTarget  

Comments