2013-01-02 17 views
34

का उपयोग कर के बारे में मैं एक दृश्य स्टूडियो समाधान msbuild.I का उपयोग कर फ़ाइल निर्माण किया गया था समाधानएक समाधान फ़ाइल का निर्माण MSBuild

msbuild.exe SolutionFile.sln /t:Build/p:Configuration=Release;Platform=Win32 

के निर्माण के लिए निम्नलिखित कमांडलाइन इस्तेमाल किया और के रूप में

Done Building Project "D:\SolutionPath\ProjectFile10.vcxproj" (default targets). 

वहाँ SolutionFile.sln तहत .proj की बहुत मैं निर्माण करने के लिए होती है कि नीचे दिखाया आगे बढ़ने के लिए विफल रहता है।

मैं नहीं बल्कि devenv.com

+1

अधिक जानकारी/MSBuild उत्पादन प्रदान करें, इस के लिए एक लिंक जोड़ना अब – stijn

उत्तर

27

से MSBuild.exe का उपयोग वहाँ निदान क्या MSBuild जो मदद मिल सकती है आप बाहर काम यहाँ क्या हो रहा है अंदर क्या हो रहा है के लिए एक तकनीक है करने के लिए है।

set msbuildemitsolution=1 

एक बार जब आप MSBuild तो समाप्त हो गया है कि यह एक .metaproj फ़ाइल उत्पन्न करेगा: एक कमांड प्रॉम्प्ट से एक वातावरण चर सेट। यह फ़ाइल एमएसबिल्ड आंतरिक रूप से उपयोग करती है लेकिन फिर हटा देती है। वास्तविक लक्ष्यों का नाम जानने के लिए आप इसे पढ़ सकते हैं। Build लक्ष्य को यह दिखाने के लिए विस्तारित किया गया है कि यह वास्तव में क्या कहता है। फिर आप एमएसबिल्ड के /t ध्वज के साथ अलग-अलग लक्ष्यों को बनाने का प्रयास कर सकते हैं ताकि यह पता चल सके कि कौन सा लक्ष्य समस्या का कारण बन रहा है।

+1

जवाब देने के लिए असंभव है निम्नलिखित के बाद से यह बताता है कि इस आउटपुट को दिखाने के लिए कैसे प्राप्त करें। आपको इस संपत्ति को विभिन्न कमांड लाइनों से सेट करना होगा। महान सुझाव। http://stackoverflow.com/questions/3887263/msbuildemitsolution-not-working-with-net-4 – SoftwareCarpenter

23

शब्दकोष संपत्ति को डायग्नोस्टिक में सेट करें और आउटपुट को फ़ाइल में सहेजें। यह आपको यह निर्धारित करने में मदद करेगा कि आपके समाधान में कौन सी परियोजना लटक रही है और आपकी समस्या का निदान करने में सहायता करें।

कमांड लाइन वाक्य रचना के रूप में MyProjectOutput.log नाम की एक फ़ाइल के लिए उत्पादन को बचाने के लिए इस प्रकार होगा:

msbuild SolutionFile.sln /t:build /fl /flp:logfile=MyProjectOutput.log;verbosity=diagnostic 

यह भी प्रतीत होता है कि आप/टी लक्ष्य पैरामीटर का निर्माण करने में पारित होने के बाद एक जगह की जरूरत आपके द्वारा सूचीबद्ध कमांड।

msbuild.exe SolutionFile.sln /t:Build /p:Configuration=Release;Platform=Win32 

इसके अलावा, आप यह सुनिश्चित करें कि प्रत्येक परियोजना के लिए एक "रिलीज" और "Win32" विन्यास शामिल कर रहे हैं? आप नीचे दिए गए कमांड को भी चलाने का प्रयास कर सकते हैं और देख सकते हैं कि संकलित हो जाता है। एमएसबिल्ड स्वचालित रूप से आवश्यक डिफ़ॉल्ट लक्ष्य और कॉन्फ़िगरेशन चलाएगा।

msbuild SolutionFile.sln 

एक अन्य विकल्प तुम कोशिश कर सकते सिर्फ परियोजना संकलन और देखते हैं कि उत्पादन किया जाता है के लिए है:

msbuild "D:\SolutionPath\ProjectFile10.vcxproj" /fl /flp:logfile=MyProjectOutput.log;verbosity=diagnostic