2012-11-21 11 views
8

पर एक सीपीपी फ़ाइल को पुनर्निर्माण करने के लिए मजबूर करें एक सीपीपी फ़ाइल में मैं संकलन-तिथि प्राप्त करने के लिए __DATE__ मैक्रो का उपयोग करता हूं।बल एमएस वीएस -2010 प्रत्येक निर्माण

यह मुझे उस फ़ाइल के अंतिम संकलन की तारीख देता है। लेकिन चूंकि फ़ाइल को अक्सर नहीं बदला जाता है, ज्यादातर मामलों में तारीख पुरानी होती है, कभी-कभी कई महीनों में।

जो मैं वास्तव में चाहता हूं वह परियोजना के अंतिम निर्माण की तारीख है।

क्या परियोजना के प्रत्येक संकलन पर उस एकल सीपीपी फ़ाइल को पुनर्निर्माण करने के लिए VS2010 को मजबूर करने की कोई सेटिंग है? फ़ाइल में बदलावों के बावजूद?

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

उत्तर

12

आप शायद Pre-Build Step जोड़ सकते हैं कि touch (यह thread देखें) फ़ाइल?

एक Pre-Build Step को जोड़ने के लिए खोलने पर, आपकी Project Properties, तो Configuration Properties > Build Events > Pre-Build Event तो कमांड लाइन आप Command Line में मार डाला है करना चाहते हैं जोड़ें।

अमित से सुझाव के बाद, जाहिर है कि आप PowerShell का उपयोग कर फ़ाइल को touch भी देख सकते हैं, स्पष्टीकरण के लिए this देखें।

नीचे टिप्पणी में एड्रियन मैकार्थी ने सुझाव दिया है, .obj फ़ाइल को हटाने के संदर्भ में बेहतर होगा जहां स्रोत नियंत्रण प्रयोग किया जाता है और आप .cppread-only रखना चाहते हैं। "मैक्रो" दृश्य स्टूडियो द्वारा उजागर का उपयोग करना, को हटाने के लिए उन्हें आसान बनाया जा सकता है:

del $(TargetDir)sourcefile.obj 

चीयर्स और hth से उद्धरित। - एक और तरीका है के रूप में Alf प्राप्त करने के लिए इस

nmake (bundled with Visual Studio and the SDK) option /t does a touch, it was once the conventional way to do this for Windows programmers. 
+2

या, अपने पूर्व निर्माण कदम सिर्फ .obj फ़ाइल को नष्ट कर सकता है ... – Liam

+0

यह शायद थोड़ा के रूप में, अपने कॉन्फ़िगरेशन के आधार पर, .obj और अधिक जटिल हो जाएगा विभिन्न स्थानों पर आउटपुट हो सकता है – emartel

+0

विंडोज़ पर कोई स्पर्श नहीं है, लेकिन आपके उत्तर और Google ने मुझे इस तथ्य के लिए प्रेरित किया कि "प्रतिलिपि/बी स्रोत +," विंडोज़ में समान प्रभाव डालता है, इसलिए इसे काम करना चाहिए। – MacGucky