2010-08-16 14 views
13

बिल्ड में "साफ" होने के लिए फ़ाइलों को जोड़ना मेरी परियोजनाओं में से एक के हिस्से के रूप में, "पहले से निर्मित" कार्य हैं जो आखिरकार कुछ फाइलें उत्पन्न करते हैं। विशेष रूप से, यह परियोजना में शामिल होने के लिए एक नई जेनरेट कक्षा को आउटपुट करने वाली बाहरी इनपुट फ़ाइल में गुज़रने के बाद, एक छोटी स्थैतिक कक्षा (प्रोजेक्ट में "संकलित न करें" के रूप में शामिल) को संकलित करता है और फिर इसे निष्पादित करता है।एमएसबिल्ड -

मैंने इसे इंटरमीडिएट फ़ाइलों को परियोजनाओं (आउटडियर) में रखने के लिए प्रोग्राम किया, लेकिन पाया कि "पुनर्निर्माण" (और अंततः "साफ") पर, इन फ़ाइलों को नहीं उठाया जाता है। कुछ विचारों के बाद, मुझे एहसास हुआ कि अंतिम, जेनरेटेड क्लास जो $ (ProjectDir) में सही है, को शायद "साफ" पर भी हटा दिया जाना चाहिए।

माइक्रोसॉफ्ट में कुछ जांच। कॉमन। लक्ष्यों ने खुलासा किया कि इंटरमीडिएट पथ (obj \ build \ assembly.FileListAbsolute.txt) से कुछ "मास्टर सूची" थी जो फ़ाइलों को हटाने के लिए पूछताछ की गई थी।

क्या एमएसबिल्ड में इस सूची में अपनी नई फाइलें जोड़ने के लिए कुछ मानक तरीका है, ताकि वे साफ हो जाएं, या इस तरह की चीज "पहले क्लीयन" (या "आफ्टरक्लीन") लक्ष्य ओवरराइड में बेहतर हो जाए?

उत्तर

12

इस MSBuild article by Hashimi में FileWrites तंत्र की जानकारी के लिए स्वच्छ प्रक्रिया विस्तार (जो लेखन प्रणाली FileListAbsolute.txt आप देख रहे हैं है) देखें। और the book अभी प्राप्त करें यदि आप अगले वर्ष में बिल्ड स्क्रिप्ट लिखने में 2 घंटे से अधिक समय व्यतीत करने जा रहे हैं।

+0

बिल्कुल सही! * स्वच्छ प्रक्रिया को विस्तारित करना * वही था जो मैं ढूंढ रहा था! मुझे उम्मीद है कि अगले वर्ष में बिल्ड स्क्रिप्ट पर 2 घंटे से ज्यादा समय बिताना पड़ेगा, लेकिन उस पुस्तक को निकट भविष्य में मेरे डेस्क पर जाने का मौका मिलेगा। –

+0

@ जेफ वेइट: आप इससे छिप नहीं सकते हैं - एमएसबिल्ड-इज़ को समझने के लायक है, और आप समय पर सुरुचिपूर्ण के रूप में इसकी सराहना करेंगे! http://stackoverflow.com/questions/47884/is-it-worth-learning-to-use-msbuild और http://stackoverflow.com/questions/1326445/is-there-a-good-tutorial-on- msbuild-scripts –

+5

हाँ मैं रूबेन से पुस्तक प्राप्त करने के लिए सहमत हूं! –

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