2015-07-23 2 views
5

devenv.exe साथ IncrediBuild का उपयोग करते हुए मैं Xorax IncrediBuild का उपयोग विजुअल स्टूडियो 2013 (या बाद में) समाधान और परियोजनाओं के निर्माण के लिए, वे .csproj लोगों के एक समूह के साथ ज्यादातर .vcxproj कर रहे हैं।बनाम MSBuild.exe

यह मेरे खुदाई का एक छोटा सा लिया, लेकिन मैंने सीखा है कि:

तो, दृश्य स्टूडियो परियोजनाओं के मामले में, वहाँ दो मोड उपलब्ध हैं:

  • BuildConsole.exe MyProj.vcxproj जो DevEnv.exe

  • BuildConsole.exe MyProj.vcxproj /usemsbuild जो का उपयोग करता है MSBuild.exe

मैं का उपयोग करता है अगर सीखना पसंद है तो थर्म ई दो इंजनों का उपयोग करने के बीच कोई अंतर है।

मैं कुछ परीक्षण किए गए और कहा कि है

  • IncrediBuild "शुरु कर रहा है ..." चरण DevEnv.exe के मामले में थोड़ा समय लेता है।

  • BuildConsole.exe विभिन्न उत्पादन, स्पष्ट रूप से उत्पन्न करता है।

  • निर्माण प्रदर्शन में कोई (या महत्वहीन) अंतर।

व्यक्ति C/C++ देशी परियोजनाओं (.vcxproj) के साथ ही पूरे समाधान (.sln) के निर्माण के मामले में, फायदे और नुकसानDevEnv.exe बनाम MSBuild.exe का उपयोग कर के क्या हैं?

+0

पता नहीं है कि मैं कुछ गलत कर रहा हूं, लेकिन यह पूरी तरह से व्यक्तिपरक है। मेरे पास 78 परियोजनाएं हैं, और मैंने वीएस2017 बिल्ड का उपयोग करके "पुनर्निर्माण" किया था और इसमें 2:36 (एम: एसएस) लिया गया था, और इनक्रेडिबिल्ड के साथ यह 5 मीटर से ऊपर चला गया और मैंने इसे अभी रोक दिया। ओह ठीक है ... दोनों DevEnv का उपयोग कर। –

उत्तर

5

** अस्वीकरण: मैं IncrediBuild पर काम **

हम माइक्रोसॉफ्ट के साथ मिलकर यह फ़ैसला किया है आदेश प्राप्त करने के लिए बनाता है कि कि (IncrediBuild के बिना), devenv चाहिए दृश्य स्टूडियो के भीतर से निर्माण के रूप में एक ही तरीके से व्यवहार करते हैं इस्तेमाल किया गया। एमएसबिल्ड निष्पादन निर्माण उत्पादन में वीएस की तुलना में थोड़ा अलग तरीके से बनाता है और जिस तरह से यह कस्टम कदमों और कुछ अन्य मामूली चीज़ों को निष्पादित करते समय व्यवहार करता है। यदि कोई उपयोगकर्ता इंक्रेडिबिल्ड उसी तरह व्यवहार करने के लिए बनाता है जैसा कि उसे विजुअल स्टूडियो से निर्माण करते समय उपयोग किया जाता है, तो डिफ़ॉल्ट तरीके का उपयोग किया जाना चाहिए (IncrediBuild DevEnv निष्पादित करना)। यदि किसी उपयोगकर्ता को MSBuild का उपयोग करके अपने निर्माण निष्पादित करने के लिए उपयोग किया जाता है, चाहे कमांड लाइन से या TFS के माध्यम से, UseMSBuild स्विच का उपयोग किया जाना चाहिए। हम उपयोगकर्ताओं को ऐसा करने का तरीका चुनना चाहते थे कि वे इंक्रेडिबिल्ड को ऐसा करने के तरीके के आधार पर काम करने के तरीके के आधार पर काम करना चाहें, जैसे कि डेवेंव और एमएसबिल्ड दोनों का समर्थन करने वाले माइक्रोसॉफ्ट के समान।

अतिरिक्त टिप्पणियाँ:

  1. आरंभीकरण चरण है, जब devenv का उपयोग कर वास्तव में लंबे समय तक है devenv भार के बाद से और MSBuild तुलना में एक अलग ढंग से समाधान और .vcxproj फ़ाइलें पार्स करता है। एक समाधान में अधिक परियोजनाएं हैं - इस चरण को जितना लंबा लेना चाहिए। इस चरण को पूरा करने के लिए समय की वृद्धि वास्तविक निर्माण समय में गति वृद्धि से आमतौर पर बहुत अधिक ऑफसेट होती है - एक ही समय में कई परियोजनाओं का निर्माण करते समय।
  2. हमारी अनुमानित निष्पादन सुविधा के लिए डेवेनव की अत्यधिक अनुशंसा की जाती है जो एमएसबिल्ड का उपयोग करके संभव नहीं होने वाले काम के उपरोक्त तरीके से अतिरिक्त निर्माण त्वरण का 20% प्रदान कर सकता है।
+0

उत्तर स्वीकार किया गया। धन्यवाद! – mloskot

+0

मुझे नहीं लगता कि यह एक अलग SO सवाल का हकदार है, इसलिए यहां पूछेगा। क्या आप BuildConv.exe इंजन के साथ उपयोग किए जाने पर BuildConsole.exe पर कुछ प्रकाश भी डाल सकते हैं, यदि आप .vcxproj पास करते हैं और कोई संबंधित एसएसएलएन उपलब्ध नहीं है? क्या यह अस्थायी उत्पन्न करता है। एसएलएन? – mloskot

1

माइक्रोसॉफ्ट pretty explicit इसके बारे में है:

निर्माण से संबंधित कार्य के लिए, यह अब अनुशंसित है कि आप devenv के बजाय MSBuild का उपयोग करें। अधिक जानकारी के लिए, एमएसबिल्ड कमांड लाइन संदर्भ देखें।

VS2010 के बाद से devenv दस्तावेज में एक नोट, कि इमारत सी ++ MSBuild के साथ परियोजनाओं का समर्थन करना शुरू है और यह भी वी.एस. के पहले संस्करण .vcproj से डिफ़ॉल्ट परियोजना फाइल एक्सटेंशन vcxproj को बदल दिया है।

सलाह के इस प्रकार के ज्ञान केवल जब वे इसके बारे में स्पष्ट नहीं कर रहे हैं निष्कर्ष निकाला जा सकता। एक जिसे आपने तैयार किया, डेवेन.एक्सई कई डीएलएल निर्भरताओं के साथ एक बहुत भारी प्रक्रिया है, इसमें जाने में कुछ समय लगता है। एक और आप जिस तरह से कर रहे हैं उसके साथ आप परेशान हो सकते हैं, मूल मार्गदर्शन Devenv का उपयोग करना था।Devenv.exe के बजाय कॉम। उन निर्भरताओं में भी परेशानी होती है, जिस तरह से रास्ते में जाना पड़ता है या केवल सादा गिरावट होती है जब Devenv.exe एक असामान्य रनटाइम वातावरण में सेवा की तरह चलता है। नमूना कहानी-से-नरक this Q+A है, तीन उत्तरों और कोई भी सही नहीं दिखता है। कुछ भी हैं।

सादा सलाह अनुशंसित तरीके का उपयोग करना है।

+0

हंस, मुझे आपका जवाब स्वीकार करने में खुशी है। हालांकि मुझे इंक्रेडिबिल्ड द्वारा समर्थित दो इंजनों के पेशेवरों और विपक्षों पर अधिक जानकारी नहीं मिली है, लेकिन मुझे एहसास है कि यह 'अप्रत्याशित' प्रश्न हो सकता है, जब तक ज़ोरैक्स लोग चिल्लाएंगे। धन्यवाद! – mloskot

+0

एफवाईआई, मैंने एवी के जवाब को बदल दिया है क्योंकि यह अधिक प्रासंगिक विवरणों की पुष्टि करता है। – mloskot

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