2014-11-05 2 views
5

के साथ वृद्धिशील बिल्ड मैं पाइथन के माध्यम से सबप्रोसेस के कॉल के साथ एक विजुअल स्टूडियो 2010 समाधान बना रहा हूं। जब कमांड लाइन से सीधे कॉल किया जाता है तो इसे शुरू करने के लिए devenv.com ~ 15 सेकंड लगते हैं। लेकिन जब पाइथन से बुलाया जाता है तो यह ~ 1.5 मिनट तक कूद जाता है।MSBuild.exe

स्वाभाविक रूप से मैं अपने निर्माण से उस मृत समय को हटाने की उम्मीद कर रहा हूं। इसलिए मैंने MSBuild.exe (.NET 4 से) का परीक्षण करने का निर्णय लिया। ऐसा लगता है कि MSBuild.exe तुरंत चलता है। लेकिन ... ऐसा लगता है कि हर बार एक पूर्ण निर्माण करना और वृद्धिशील नहीं है।

आदेश मैं उपयोग कर रहा हूँ

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" "C:\path\to\my\project.sln" /target:build /maxcpucount:8 /property:Configuration=Release 

ऐसा लगता है कि यह एक वृद्धिशील निर्माण का समर्थन करना चाहिए है। लेकिन मैंने ऑनलाइन पोस्ट्स को इंगित किया है कि एमएसबिल्ड इस तरह के वृद्धिशील निर्माण का समर्थन करने में सक्षम नहीं हो सकता है।

क्या यह संभव है? यदि हां, तो मैं गलत क्या कर रहा हूं?

अद्यतन:

मैंने इसे थोड़ा और पढ़ा है।

http://msdn.microsoft.com/en-us/library/ms171483.aspx

और

http://www.digitallycreated.net/Blog/67/incremental-builds-in-msbuild-and-how-to-avoid-breaking-them

के आधार पर ऐसा लगता है जैसे मैं इनपुट और आउटपुट गुण मेरी .vcxproj फ़ाइलों में सेट की जरूरत है। मेरी फाइलों की जांच करना ये वास्तव में गायब हैं।

उन्हें कब उत्पन्न किया जाएगा? अधिकांश मेरी .vcxproj फ़ाइलों को विजुअल स्टूडियो 2008 से परिवर्तित कर दिया गया था। लेकिन मैंने एक नई परियोजना भी उत्पन्न की जिसमें इनपुट और आउटपुट गुण भी गुम हैं।

क्या वीएस -2010 इन गुणों के साथ परियोजनाएं नहीं बना रहा है?

अद्यतन: हम बाद में वीएस 2013 में अपग्रेड कर चुके हैं। अब एमएसबिल्ड वृद्धिशील बिल्ड का समर्थन करता है। वीएस 2010 के मुद्दे के नीचे कभी नहीं मिला।

+1

आपने यह जानकारी कहाँ देखी है कि एमएसबिल्ड वृद्धिशील निर्माण का समर्थन नहीं करता है? क्या आप यूआरएल या पॉइंटर्स पोस्ट कर सकते हैं इसे कैसे ढूंढें? –

+0

यह वह पोस्ट है जो मैंने पाया था। https://social.msdn.microsoft.com/Forums/vstudio/en-US/8123dce6-7177-4fd7-b59c-51ef1359e60d/msbuild-task-is-not-incremental। जिस बिंदु ने मुझे एक वृद्धिशील निर्माण के बारे में सोचा था, वह समर्थित नहीं था "न तो एक प्रणाली के रूप में एमएसबिल्ड, न ही एमएसबिल्ड एक कार्य के रूप में एक एसएसएलएन के निर्माण के बारे में इनपुट और आउटपुट जानने का माध्यम प्रदान करता है।" लेकिन मुझे अस्पष्ट नहीं है कि यह कथन कितना सटीक है। इसलिए यह सवाल है। –

उत्तर

2

मुझे लगता है कि तथ्य यह है कि वृद्धिशील बनाता समर्थित नहीं हैं आधिकारिक सूत्रों, Managed Incremental Build इस सुविधा के अनुसार से एक झूठा बयान है और VS2010 SP1

में शामिल किया गया था हम पहले में VS2008 कामयाब वृद्धिशील निर्माण सुविधा शुरू की। वीएस -2010 में, हम एमएसबिल्ड में जाने वाली बिल्ड सिस्टम के साथ प्रबंधित वृद्धिशील बिल्ड सुविधा को फिर से कार्यान्वित करने में सक्षम नहीं थे। हमें इस सुविधा के लिए मजबूत ग्राहक अनुरोध प्राप्त हुए। नतीजतन, हम इस सुविधा को फिर से कार्यान्वित किया और इसे वीएस -2010 एसपी 1 में शामिल किया गया है।

अन्य समाधान मैं वेब

  • परियोजनाओं को पहले से ही संवर्द्धित बनाने चाहिए पर पाया (सिर्फ यकीन है कि तुम बजाय बिल्ड पुनर्निर्माण करते हैं)। यह जांचने का सबसे अच्छा तरीका है कि वृद्धिशील भवन निर्माण कार्य कमांड लाइन से निर्माण को चलाने के लिए है। दूसरा आपके द्वारा निर्मित समय में लगभग कोई समय नहीं लेना चाहिए।

    यदि चीजें अभी भी पुनर्निर्मित हो रही हैं, तो शायद आपने अपनी परियोजनाओं को किसी भी तरह से संशोधित किया है जो बिल्ड ऑर्डर के साथ गड़बड़ कर रहा है। बिल्ड लॉग को देखकर (/ v विकल्प के माध्यम से) क्या हो रहा है, आपको पॉइंटपॉइंट करने में मदद कर सकता है।

  • अन्य कारण जो वृद्धिशील निर्माण के साथ समस्याएं पैदा कर सकता है GenerateResource.TrackFileAccess Property यह एपीआई .NET Framework आधारभूत संरचना का समर्थन करता है और इसका उद्देश्य सीधे आपके कोड से उपयोग नहीं करना है। एक स्विच प्राप्त करता है या सेट करता है जो निर्दिष्ट करता है कि हमें फ़ाइल एक्सेस पैटर्न ट्रैक करना चाहिए या नहीं।
+1

अह्ह्ह .... यह समझ में आता है। मेरे पास सर्विस पैक नहीं था 1. आरंभिक रिलीज से बाहर निकलने के लिए कितनी असामान्य सुविधा है। –

+0

@ शेन गैनन सहमत हुए :)! –

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