मेरे पास एकाधिक निर्देशिकाओं में बहुत सारे विजुअल स्टूडियो प्रोजेक्ट सॉल्यूशंस हैं (सभी एक्सटेंशन। एसएलएन के साथ) और मैं एक साधारण बैच स्क्रिप्ट लिखना चाहता हूं जो बैच फ़ाइल में सूचीबद्ध सभी समाधान स्वचालित रूप से तैयार करेगी।कमांड लाइन से विजुअल स्टूडियो के लिए सरल बिल्ड स्क्रिप्ट कैसे बनाएं?
मैं मैन्युअल रूप से शुरू करके एक समाधान का निर्माण करने में सक्षम हूँ Visual Studio Command Prompt
(जो निम्न आदेश के साथ सिर्फ एक कमांड लाइन उदाहरण निष्पादित
"%comspec%" /k "C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
जो बाद मैं तो फोन करके परियोजना का निर्माण होता है:
devenv "path\to\solutionFile\projectSolution1.sln" /build Debug
इस परियोजना (परियोजना संभालने त्रुटि नहीं है) का निर्माण करेगा और मैं कुल्ला और प्रत्येक परियोजना bui मैं चाहता हूँ के लिए दोहराएँ ली।
हालांकि मेरे पास है जब एक बैच फ़ाइल में निम्न build.bat
कहा जाता है:
"%comspec%" /k "C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
echo "Starting Build for all Projects with proposed changes"
echo .
devenv "path\to\solutionFile\projectSolution2.sln" /build Debug
devenv "another\path\to\solutionFile\projectSolution3.sln" /build Debug
devenv "yet\another\path\to\solutionFile\projectSolution4.sln" /build Debug
echo "All builds completed."
pause
बैच स्क्रिप्ट केवल पहली पंक्ति कार्यान्वित करता है, और प्रतीक्षा करता है जब तक मैं दूसरों को क्रियान्वित करने से पहले exit
में टाइप करें। बैच फाइलों पर किए गए शोध के आधार पर इसकी मेरी समझ और सभी स्टैक ओवरफ्लो प्रश्न यह है कि cmd
वास्तव में स्वयं का एक और उदाहरण आमंत्रित करता है जो निर्माण वातावरण को स्थापित करने के लिए vcvarsall.bat
निष्पादित करता है।
यह exit
टाइपिंग के रूप में काम नहीं करेगा devenv
साथ कि उदाहरण की स्थापना की और उसके बाद आदेशों devenv
के रूप में निष्पादित नहीं कर सकता को मारता है नहीं किसी मान्यता प्राप्त आदेश (के बाद से निर्यात पथ अब मौजूद नहीं होगा)
कम में , यह एक बैच फ़ाइल में devenv
परिभाषित के साथ cmd उदाहरण के बाकी हिस्सों में गुजरने के लिए कैसे प्राप्त किया जा सकता है? मैं समझता हूं कि यह एक मजबूत तरीका नहीं है (और ऐसे कई टूल हैं जो इसे करते हैं) का निर्माण करने के लिए, लेकिन मैं उम्मीद कर रहा हूं कि इन परियोजनाओं को व्यक्तिगत रूप से कॉल करने के मैन्युअल काम को स्वचालित करने के लिए एक बैच स्क्रिप्ट प्राप्त हो।
मैं स्क्रिप्ट और ध्यान का परीक्षण किया कि 'कॉल "..." x86' लाइन एक नई लाइन पर होनी चाहिए। मैंने कोड को संपादित करने की कोशिश की, लेकिन SO को कम से कम 6 वर्ण परिवर्तनों की आवश्यकता है ... :-( –
@ मार्टनडॉक्टर अच्छा पकड़, धन्यवाद! मैंने इसे अपडेट किया है। जब मैं एक वीएम के माध्यम से पेस्ट कॉपी करता हूं तो कोड स्वरूपण खराब हो जाता है। :( – matrixanomaly
बढ़िया! संपादन के लिए धन्यवाद! –