2009-06-22 7 views
13

मैंने देखा है कि सामग्री क्रूज गायब होने पर हमारे क्रूज़ नियंत्रण सर्वर निर्माण में विफल नहीं होते हैं।सामग्री फ़ाइलों में अनुपलब्ध होने पर MSBuild को कैसे विफल किया जाए

जब मैं जावास्क्रिप्ट/ग्राफिक्स फाइल आदि गायब हो जाता हूं तो मैं बिल्ड को विफल करना चाहता हूं। मैं svn से खींची गई फ़ाइलों के साथ प्रोजेक्ट फ़ाइल को मान्य करने के बारे में कैसे जा सकता हूं?

उत्तर

17

आप यह सुनिश्चित करने के लिए एक लक्ष्य बना सकते हैं कि सभी सामग्री फाइलें शारीरिक रूप से डिस्क पर स्थित हों और यदि यह मामला नहीं है तो त्रुटि उत्पन्न करें। यहां इस तरह के लक्ष्य

<Target Name="ValidateContentFiles"> 
    <Error Condition="!Exists(%(Content.FullPath))" 
     Text="Missing Content file [%(Content.FullPath)]"/> 
</Target> 

आपको यह सुनिश्चित करना है कि इस लक्ष्य इसे जोड़ने के लिए InitialTargets परियोजना तत्व में यह विशेषता द्वारा हर निष्पादित किया जाता है कर सकते हैं। उदाहरण के लिए

<Project InitialTargets="ValidateContentFiles" 
     ToolsVersion="3.5" DefaultTargets="Build" 
     xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

सैयद इब्राहिम हाशिमी

मेरे पुस्तक: Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

0

तुम भी त्रुटि स्थिति BeforeBuild लक्ष्य उपलब्ध में .csproj में इस तरह जोड़ सकते हैं:

<Target Name="BeforeBuild"> 
<Error Condition="!Exists(%(Content.FullPath))" 
Text="Missing Content file [%(Content.FullPath)]"/> 
</Target> 

बिल्डिंग के पहले से पहले हमेशा निष्पादित होगा एक परियोजना और इसलिए आपको परियोजना संपत्ति के आरंभिक लक्ष्य विशेषता में लक्ष्य जोड़ने की आवश्यकता नहीं है।

संबंधित मुद्दे