2011-06-01 5 views
5

पर चलाने के लिए प्रीबिल्ड स्क्रिप्ट को कैसे बल दें हम वर्तमान में डेल्फी 200 9 और जीआईटी का उपयोग एक एप्लीकेशन विकसित करने के लिए करते हैं। हमने गिट से जानकारी का उपयोग करके संस्करण संख्या उत्पन्न करने और आईडी बनाने के लिए प्रीबिल्ड स्क्रिप्ट स्थापित की है और इसे प्रोजेक्ट में शामिल संसाधन के रूप में संकलित किया है। समस्या यह है कि यह स्क्रिप्ट एक नियमित संकलन पर नहीं चलती है। इसका अर्थ यह है कि अन्य डेवलपर्स वास्तविक संस्करण संख्या और संसाधन में संख्या (विशेष रूप से जब गिट में शाखाओं को स्विच करते हैं) के बीच एक विसंगति के साथ समाप्त हो सकते हैं।प्रत्येक संकलन

चूंकि हम कुछ महत्वपूर्ण गणना करने के लिए हमारे सॉफ़्टवेयर का उपयोग करते हैं, इसलिए हम इस बिल्ड आईडी को गणनाओं को पुन: पेश करने और समस्याओं को ट्रैक करने के लिए उपयोग करना चाहते हैं।

मेरे डेवलपर्स को अक्सर Shift-F9 दबाए जाने के लिए मजबूर करने की कोशिश करने के अलावा, मैं कैसे सुनिश्चित कर सकता हूं कि प्रीबिल्ड स्क्रिप्ट आवश्यक होने पर (संभवतः प्रत्येक संकलन पर) चलती है?

जेसन

अद्यतन: यह सच है पूर्व निर्माण स्क्रिप्ट प्रत्येक संकलन में चला जाता है कि है। समस्या यह थी कि मुझे गिट में एक टैग बनाने के बाद F9 दबाकर एक अलग परिणाम प्राप्त करने की उम्मीद थी, भले ही कोई कोड नहीं बदला गया हो।

+0

मेरे पूर्व निर्माण कार्य प्रत्येक संकलन चलाते हैं। मैं कल्पना नहीं कर सकता कि तुम्हारा क्यों नहीं है। –

+0

ठीक है, जब मैं एफ 9 दबाकर प्रोग्राम संकलित/चलाता हूं, तो संस्करण की जानकारी अक्सर पुरानी होती है। शिफ्ट-एफ 9 हमेशा इसे ठीक करता है। मुझे लगता है कि मैं और अधिक कठोर हो सकता हूं, लेकिन शायद यह मानना ​​भी उचित है कि प्रीबिल्ड बैच बस यही है .. पूर्व निर्मित, और इस प्रकार स्पष्ट रूप से निर्माण करते समय ही शुरू किया जाता है। – boileau

उत्तर

0

प्री बिल्ड क्रियाएं प्रत्येक संकलन से पहले चलती हैं।

आप एक टिप्पणी में कहते हैं कि जब आप F9 दबाते हैं तो कभी-कभी क्रियाएं नहीं चलती हैं। यह समझ में आता है क्योंकि F9, या Run, केवल एक संकलन का आह्वान करता है यदि स्रोत को बदलने के लिए समझा जाता है।

एक पहले कॉम्पाइल नोटिफ़ायर प्लग ठीक उसी तरह व्यवहार करेगा। आपका समाधान यह सुनिश्चित करना है कि आप Ctrl + F9 का उपयोग करके चलने से पहले संकलित करें।

3

हमने कस्टम आईडीई प्लगइन लिखकर एक समान समस्या हल की जो IOTAIDENotifier50 इंटरफ़ेस का उपयोग करता है। विशिष्ट रूप से कुछ आवश्यक परियोजना सेटिंग्स का परीक्षण करने और गतिशील संस्करण जानकारी (VERSIONINFO संसाधन) उत्पन्न करने के लिए, पहले कॉम्पाइल विधि का उपयोग करके। इसे हर प्रकार के निर्माण (संकलन और निर्माण) के लिए बुलाया जाता है। हम एक अद्वितीय एक्सई सीरियल नंबर भी उत्पन्न करते हैं और सबकुछ लॉग करते हैं, जो हमें मुद्दों को ट्रैक करने में मदद करता है और आपकी स्क्रिप्ट के समान है। पूर्णता के लिए हमने केवल डेल्फी 2007 और डेल्फी एक्सई में ऐसा किया है।

+0

ऐसा लगता है कि मेरे पास संसाधन करने के लिए संसाधन (समय) नहीं है। क्या आप अपनी प्लगइन से कुछ स्रोत कोड साझा करने के इच्छुक होंगे? – boileau

+0

हालांकि यह आपकी समस्या का समाधान नहीं करेगा, इस तरह के एक जोड़ लिखना मुश्किल से आसान है। पूर्व और पोस्ट बिल्ड क्रियाओं को जोड़ने से पहले मैंने स्टीव के समान ही किया था और यह वास्तव में सरल है। –