2010-03-16 15 views
7

में समाधान स्तर मैं कार्य पूरे समाधान के लिए वास्तव में एक बार निष्पादित करने की आवश्यकता है का एक सेट की जरूरत है एक ही बार में चलाने के लक्ष्य बनाओ। यह उन कार्यों को चलाएगा जो प्रत्येक प्रोजेक्ट को प्रत्येक प्रोजेक्ट के लिए अलग-अलग कार्यों को चलाने के लिए संशोधित करेंगे। हमने पहले समाधान के लिए एक अलग परियोजना का उपयोग करके ऐसा किया था जिसमें समाधान स्तर के कार्य थे, लेकिन हम इससे दूर हटना चाहते हैं। क्या किसी ने ऐसा किया है या किसी को भी इसे लागू करने के बारे में कोई सुझाव है?MSBuild

उत्तर

6

वे आसानी से बढ़ाया नहीं कर रहे हैं के बाद से समाधान फ़ाइलों MSBuild स्वरूप में नहीं हैं या इच्छित। यदि आप निर्माण प्रक्रिया पर अधिक नियंत्रण चाहते हैं तो आपको एक "ड्राइवर" msbuild फ़ाइल बनाना होगा जो आपकी समाधान फ़ाइल को प्रतिस्थापित करेगा। इस ड्राइवर फ़ाइल के अंदर आप अपनी सभी परियोजनाओं का निर्माण करेंगे जो आपको चाहिए और कुछ अतिरिक्त कार्य करें। आप MSBuild task का उपयोग करके ऐसा करेंगे। यहां एक नमूना है जो दिखा रहा है कि 1 से अधिक प्रोजेक्ट कैसे बनाएं।

<Project ...> 
    <ItemGroup> 
     <Projects Include="proj01.csproj"/> 
     <Projects Include="proj02.csproj"/> 
     <Projects Include="proj03.csproj"/> 
    </ItemGroup> 

    <Target Name="BuildAll"> 
     <MSBuild Projects="@(Projects)" BuildInParallel="true" /> 
    </Target> 

</Project> 

तो आपके मामले में आप परियोजनाओं को बनाने से पहले कार्यों को निष्पादित करेंगे। यह भी ध्यान रखें कि मैं यह दर्शाता है कि MSBuild कोशिश करते हैं और एक ही बार में एक से अधिक परियोजना का निर्माण कर सकते BuildInParallel के लिए मूल्य सच निर्दिष्ट।

+0

यह एक दिलचस्प विचार है। मेरा मानना ​​है कि अगर मैं परियोजनाओं के निर्माण से पहले कुछ अतिरिक्त कार्य करना चाहता हूं तो यह भी काम करेगा? (और उन अतिरिक्त कार्यों परियोजनाओं के लिए खुद को संशोधित किया जाएगा।) – Chandam

+0

बनाना इन फ़ाइलों का निर्माण एक बहुत ही आम परिदृश्य है। बहुत से लोग उत्पादन के निर्माण के लिए समाधान का उपयोग करके इन प्रकार की बिल्ड फाइलों को लिखना पसंद करते हैं। मेरे मामले में मैं केवल विजुअल स्टूडियो के लिए समाधान फ़ाइलों का उपयोग करता हूं, कभी भी वास्तविक निर्माण के लिए नहीं। –

+0

इस दृष्टिकोण में कहा गया है कि अगर मेरा प्रोजेक्ट 1 प्रोजेक्ट 2 पर निर्भर करता है तो क्या एमएसबिल्ड बिल्डिंग प्रक्रिया में देरी से दो बार मेरे प्रोजेक्ट 2 का निर्माण नहीं करेगा? – Nikhil

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