उत्तर

9

बड़ा अंतर। एक कस्टम बिल्ड चरण आपको निर्भरताओं और आउटपुट निर्दिष्ट करने की अनुमति देता है। जो निर्माण प्रणाली को निर्धारित करने की अनुमति देता है जब चरण निष्पादित करने के लिए और आउटपुट पहले से ही अद्यतित होने पर इसे छोड़ने के लिए अनुमति देता है। एक पोस्ट-बिल्ड इवेंट हमेशा निष्पादित होता है जब परियोजना को भवन की आवश्यकता होती है और इसका समय तय हो जाता है।

+0

पुन: ** एक पोस्ट-बिल्ड इवेंट हमेशा निष्पादित किया जाता है ** >><एक परीक्षण के रूप में मैंने अपने * पोस्ट-बिल्ड इवेंट * में 'हैलो वर्ल्ड' को जोड़ा। (1) 'हेल्लो वर्ल्ड' अपेक्षित के रूप में प्रदर्शित होता है। (2) अगर मैं बस अपनी परियोजना पर * बिल्ड * पर राइट-क्लिक करें ... 'हेल्लो वर्ल्ड' * विजुअल स्टूडियो आउटपुट में प्रदर्शित नहीं होता है, बिल्ड विंडो से आउटपुट दिखाएं *। (3) * साफ * के बाद * बिल्ड * निष्पादित * ...और 'हेल्लो वर्ल्ड' फिर से दिखाई देता है। तो ऐसा लगता है कि विजुअल स्टूडियो 2012 (* प्लेटफ़ॉर्म टूूलसेट * के साथ * प्रोजेक्ट कॉन्फ़िगरेशन में v90 पर सेट किया गया है) ... ** पोस्ट-बिल्ड इवेंट केवल तभी निष्पादित होता है जब कुछ वास्तव में बनाया जाता है। ** क्या मुझे कुछ याद आ रहा है? – Pressacco

0

लगता है @ हंस का जवाब इसे बदल गया, मुख्य अंतर यह है कि यदि कोई फाइल बनाने की आवश्यकता नहीं है, तो कोई भी निर्माण घटना नहीं होगी।


MSDN प्रलेखन से

:

घटनाओं और कस्टम अन्य निर्माण चरणों के साथ-साथ निम्न क्रम में चलाने के चरणों का निर्माण गठन:

Pre-Build event 
Custom build tools on individual files 
MIDL 
Resource compiler 
The C/C++ compiler 
Pre-Link event 
Linker or Librarian (as appropriate) 
Manifest Tool 
BSCMake 
Custom build step on the project 
Post-Build event 

परियोजना और एक पोस्ट पर कस्टम निर्माण कदम सभी अन्य निर्माण प्रक्रियाओं के खत्म होने के बाद -बिल्ड घटना अनुक्रमिक रूप से चलती है।

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

कस्टम कदम एक कस्टम निर्माण कदम एक परियोजना से जुड़े निर्माण नियम है बिल्ड:

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

कस्टम बिल्ड टूल्स एक कस्टम बिल्ड टूल एक या अधिक फ़ाइलों से जुड़ा एक निर्माण नियम है। कस्टम बिल्ड चरण एक कस्टम बिल्ड टूल में इनपुट फ़ाइलों को पास कर सकता है, जिसके परिणामस्वरूप एक या अधिक आउटपुट फाइलें होती हैं। उदाहरण के लिए, एमएफसी एप्लिकेशन में सहायता फाइल कस्टम बिल्ड टूल के साथ बनाई गई हैं। अधिक जानकारी के लिए, देखें कि कैसे: MSBuild प्रोजेक्ट्स में कस्टम बिल्ड टूल्स जोड़ें और कस्टम बिल्ड टूल्स निर्दिष्ट करें। बिल्डिंग घटनाक्रम

ईवेंट बनाएं आपको किसी प्रोजेक्ट के निर्माण को अनुकूलित करने दें। तीन निर्माण कार्यक्रम हैं: प्री-बिल्ड, प्री-लिंक, और पोस्ट-बिल्ड। एक बिल्ड इवेंट आपको बिल्ड प्रक्रिया में किसी विशिष्ट समय पर होने वाली कार्रवाई निर्दिष्ट करने देता है। उदाहरण के लिए, प्रोजेक्ट खत्म होने के बाद आप regsvr32.exe के साथ फ़ाइल पंजीकृत करने के लिए एक बिल्ड इवेंट का उपयोग कर सकते हैं। अधिक जानकारी के लिए, निर्माण ईवेंट निर्दिष्ट करना देखें।

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