2008-11-11 7 views
25

यह शायद आसान है लेकिन मैं अटक गया हूं: जब मैं विजुअल स्टूडियो में समाधान बनाता हूं - विजुअल स्टूडियो कंसोल से एक ही निर्माण करने में सक्षम होने के लिए वर्तमान बिल्ड कमांड के लिए सटीक cmd लाइन निकालने के लिए कैसे करें?वीएस समाधान के लिए cmd लाइन बिल्ड कमांड कैसे प्राप्त करें?

आउटपुट विंडो में मैं समाधान निर्माण आदेशों में एकल परियोजनाओं को देख सकता हूं लेकिन पूरे समाधान के लिए नहीं।

मैं वीएस2005 पर हूं।

किसी भी मदद की सराहना की जाएगी

उत्तर

13

क्या @JohnIdol सही ढंग से कहते हैं के अलावा, मैं पाया है कि आप सेटअप करने के लिए वातावरण चर वी.एस. एक नंबर की जरूरत है। मेरे पास बैच फ़ाइल का नाम मेरे सामने नहीं है, लेकिन आप इसका उपयोग कर सकते हैं या 'मुझे लगता है' इसका उपयोग कर सकते हैं। यह कहीं भी वीएस प्रोग्राम फाइल पेड़ में है। साथ ही, जैसा कि मुझे याद है कि आप एक मानक खोल में नहीं होना चाहते हैं लेकिन कुछ पथों के लिए .NET सेटअप खोल। जब मैं विंडोज पीसी में वीएस के साथ हूं तो मैं बाद में विवरण जोड़ूंगा।

संपादित करें: बैच फ़ाइल का उल्लेख प्रोगफाइल मेनू में एक शॉर्टकट है। यहां इसकी संपत्तियों का विवरण दिया गया है।

%comspec% /k ""C:\Program Files\Microsoft Visual Studio 8\VC\vcvarsall.bat""x86" 

एमएसबिल्ड का उपयोग समाधान को कॉल करने के लिए यहां मेरी बैच फ़ाइल है।

@echo off 

:: setup VS2005 command line build environment 
set VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio 8 
set VCINSTALLDIR=C:\Program Files\Microsoft Visual Studio 8\VC 
set FrameworkDir=C:\WINDOWS\Microsoft.NET\Framework 
set FrameworkVersion=v2.0.50727 
set FrameworkSDKDir=C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0 
set DevEnvDir=C:\Program Files\Microsoft Visual Studio 8\Common7\IDE 
set PATH=C:\Program Files\Microsoft Visual Studio 8\Common7\IDE;C:\Program Files\Microsoft Visual Studio 8\VC\BIN;C:\Program Files\Microsoft Visual Studio 8\Com 
mon7\Tools;C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\bin;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\bin;C:\Program Files\Microsoft 
Visual Studio 8\SDK\v2.0\bin;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Program Files\Microsoft Visual Studio 8\VC\VCPackages;%PATH% 
set INCLUDE=C:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\INCLUDE;C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE;C:\Program Files\Microsoft Visual 
Studio 8\VC\PlatformSDK\include;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\include;%INCLUDE% 
set LIB=C:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\LIB;C:\Program Files\Microsoft Visual Studio 8\VC\LIB;C:\Program Files\Microsoft Visual Studio 8\VC 
\PlatformSDK\lib;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib;%LIB% 
set LIBPATH=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\LIB 

echo %0 %* 
echo %0 %* >> %MrB-LOG% 
cd 
if not ""=="%~dp1" pushd %~dp1 
cd 
if exist %~nx1 (
     echo VS2005 build of '%~nx1'. 
     echo VS2005 build of '%~nx1'. >> %MrB-LOG% 
     set MrB-BUILDLOG=%MrB-BASE%\%MrB-WORK%.%MrB-NICEDATE%.%MrB-NICETIME%.build-errors.log 
     msbuild.exe %~nx1 /t:Rebuild /p:Configuration=Release > %MrB-BUILDLOG% 
     findstr /r /c:"[1-9][0-9]* Error(s)" %MrB-BUILDLOG% 
     if not errorlevel 1 (
       echo ERROR: sending notification email for build errors in '%~nx1'. 
       echo ERROR: sending notification email for build errors in '%~nx1'. >> %MrB-LOG% 
       call mrb-email "Mr Build isn't happy about build errors in '%~nx1'" %MrB-BUILDLOG% 
     ) else (
       findstr /r /c:"[1-9][0-9]* Warning(s)" %MrB-BUILDLOG% 
       if not errorlevel 1 (
         echo ERROR: sending notification email for build warnings in '%~nx1'. 
         echo ERROR: sending notification email for build warnings in '%~nx1'. >> %MrB-LOG% 
         call mrb-email "Mr Build isn't happy about build warnings in '%~nx1'" %MrB-BUILDLOG% 
       ) else (
         echo Successful build of '%~nx1'. 
         echo Successful build of '%~nx1'. >> %MrB-LOG% 
       ) 
     ) 
) else (
     echo ERROR '%1' doesn't exist. 
     echo ERROR '%1' doesn't exist. >> %MrB-LOG% 
) 
popd 
+0

धन्यवाद यह वास्तव में उपयोगी है – JohnIdol

3

आप कमांड लाइन से msbuild शुरू कर सकते हैं। msbuild .sln (समाधान) फ़ाइलों को समझता है। आप कमांड लाइन से .sln फ़ाइल और बिल्ड कॉन्फ़िगरेशन (डीबग, रिलीज़ इत्यादि) निर्दिष्ट कर सकते हैं।

http://msdn.microsoft.com/en-us/library/ms164311.aspx
एमएसबिल्ड के साथ आप क्या कर सकते हैं इस पर प्रलेखन यहां दिया गया है। MSBuild.exe को .net फ्रेमवर्क के साथ स्थापित किया गया है, दृश्य स्टूडियो के साथ नहीं। आप इसे c: \ windows \ microsoft.net \ framework \ v3.5 (या v2.0.50727)

मैंने थोड़ा खोजा और पाया कि आप डेवनव का उपयोग करके दृश्य स्टूडियो के साथ कमांड लाइन निर्माण भी कर सकते हैं। exe/निर्माण, अधिक जानकारी:
http://msdn.microsoft.com/en-us/library/xee0c8y7(VS.80).aspx

+0

लिंक करने के लिए गहराई से जानकारी में और अधिक के साथ अपने पोस्ट संपादित:

यहाँ पर बिजॉय के (यह देखते हुए कि .bat फ़ाइल जो समाधान का हिस्सा है सेटअप रूट फ़ोल्डर में स्थित है) आधारित मेरी समाधान है। – Mendelt

+0

धन्यवाद - मैं एक विशिष्ट कमांड लाइन प्राप्त करने के लिए और अधिक देख रहा था (एमएसबिल्ड निष्पादित करते समय वीएस का उपयोग करता है) – JohnIdol

3

आप सटीक कमांड लाइन के रूप में वी.एस. द्वारा प्रदान की (बजाय इस पर काम) तो आप अपने खुद सांत्वना अनुप्रयोग है कि एक फाइल करने के लिए सभी मापदंडों बाहर प्रिंट के साथ MSBuild.exe की जगह की कोशिश कर सकते देखना चाहते हैं ।

आप पृष्ठभूमि में कौन से वीएस प्रदान करते हैं, यह जांचने के लिए आपूर्ति किए गए सभी पर्यावरण चर भी लिख सकते हैं।

19

अपने प्रोग्राम मेनू> माइक्रोसॉफ्ट विजुअल स्टूडियो 2005> विजुअल स्टूडियो टूल्स>विजुअल स्टूडियो 2005 कमांड प्रॉम्प्ट पर नेविगेट करें।

इस कमांड प्रॉम्प्ट में कमांड लाइन सत्र के लिए आवश्यक सभी आवश्यक .NET पर्यावरण चर सेट हैं। आप अपने समाधान निर्देशिका के लिए निर्देशिका को बदल सकते हैं (जैसे c: \ परियोजनाओं \ mySolution) और चलाने

Msbuild.exe mySolution.sln 

आप MSBuild/का उपयोग कर उपलब्ध विभिन्न विकल्पों को देख सकते हैं? \ Windows \ Microsoft.NET \ Framework \ v2.0.50727

MSBuild के शीर्ष पर /:

MSBuild सेल्सियस पर स्थित है?त्वरित विकल्प जांच, आप इसके उपयोग पर अधिक स्पष्टीकरण के लिए MSBuild Command Line Reference पृष्ठ का संदर्भ दे सकते हैं। और how to build specific targets in solutions

+2

हाँ - लेकिन मैं कैसे पता लगा सकता हूं कि जब मैं दौड़ता हूं तो कौन से विकल्प उपयोग किए जा रहे हैं मैनुअल बिल्ड? – JohnIdol

+0

आपके लिए अधिक जानकारी के लिए संपादित करें। – icelava

+0

वीएस -2010 के लिए भी काम करता है। http://blogs.msdn.com/b/vcblog/archive/2010/01/11/vcbuild-vs-c-msbuild-on-the-command-line.aspx –

5

वीएस .NET 2003 के लिए आप कमांड लाइन से समाधान/प्रोजेक्ट बनाने के लिए devenv.exe का उपयोग कर सकते हैं।

devenv solutionfile.sln /build solutionconfig 

उदा। बैच फ़ाइल में उपयोग:

call "C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat" 

devenv Tools.sln /build "Release" 
+0

हा ... यह आश्चर्यजनक है कि " कॉल "कीवर्ड व्यवहार बदलता है! मेरे हिस्से पर एलओएल मूर्खतापूर्ण गलती। धन्यवाद! –

+0

यह विजुअल स्टूडियो 2005 के लिए भी काम करता है लेकिन vsvars32.bat फ़ाइल पर स्थित है: सी: \ प्रोग्राम फ़ाइलें \ माइक्रोसॉफ्ट विजुअल स्टूडियो 8 \ Common7 \ उपकरण –

4

मैं बस उदाहरण पर बेजॉय का शुक्रिया अदा करना चाहता हूं। सेटअप प्री बिल्ड इवेंट पर समाधान पुनर्निर्माण के साथ मुझे बड़ी समस्याएं थीं क्योंकि उन्होंने अधिकांश मैक्रोज़ को हटा दिया और इससे मुझे बहुत मदद मिली।

call "%VS100COMNTOOLS%\vsvars32.bat" 

devenv "%CD%\..\soulutionfile.sln" /build "Release"