2011-03-28 2 views
20

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

डिफ़ॉल्ट दृश्य स्टूडियो यूआई के साथ

, यह मेरे कई कुटिल, माउस और कीबोर्ड कार्रवाई करता है:

परियोजना ... राइट क्लिक ... विन्यास गुण ... डिबगिंग ... कमान तर्क ... प्रकार आर्ग ... ENTER ... F5

इस आम कार्रवाई के रूप में, अन्य सामान्य संचालन के रूप में आसान उदाहरण के लिए बनाने के लिए एक रास्ता है, एक पैटर्न जो चला जाता है के लिए सभी फाइलों को खोज:

CNTL + SHIFT + F ... प्रकार खोज पैटर्न ... ENTER

उदाहरण के लिए, डिबग कमांड लाइन तर्क के लिए त्वरित पहुँच अनुमति देने के लिए एक कस्टम संपादन बॉक्स बनाने के लिए एक रास्ता है ? या एक कुंजी-बाध्यकारी एक सरल "डीबग संवाद" पॉप अप करने का एक तरीका है जहां तर्क दर्ज किया जा सकता है और डीबगिंग सीधे शुरू हो सकता है? जैसे

ALT + F5 ... प्रकार आर्ग ...

मैं सी ++ और विजुअल स्टूडियो 2010 एक्सप्रेस का उपयोग कर रहा ENTER। धन्यवाद!

+1

ऐसा लगता है कि आप इसके लिए एक मैक्रो लिख सकते हैं। इसे रिकॉर्ड करें, फिर टाइप किए गए टेक्स्ट का उपयोग करने के बजाय इसे संकेत देने के लिए संपादित करें। एक हॉटकी असाइन करें, और आप बहुत करीब हैं? –

+0

@CraigStuntz - मैक्रो रिकॉर्डर मोडल डायलॉग बॉक्स के अंदर जो कुछ भी करता है उसे रिकॉर्ड नहीं करेगा। – voetsjoeba

+0

यह एक [अलग दृष्टिकोण] पर विचार करने लायक है (http://stackoverflow.com/questions/4791140/how-do-i-start-a-program-with-arguments-when-debugging); कंपाइलर निर्देशों का उपयोग करके ओविंद का समाधान देखें। –

उत्तर

8

नीचे मैक्रो मदद करनी चाहिए। ओपन "टूल्स-> मैक्रोज़-> मैक्रो एक्सप्लोरर", फिर नया मॉड्यूल बनाएं, इसे संपादित करें, और नीचे कॉपी-पेस्ट कोड बनाएं। आवश्यक कमांड SetCommandArgsProperty है। यूआई अच्छा नहीं है, लेकिन यह काम करता है (वीएस 2005, मुझे उम्मीद है कि यह वीएस 2010 में भी काम करेगा)। फिर इस मैक्रो को चलाने के लिए आप जिस शॉर्टकट को पसंद करते हैं उसे जोड़ें।

  • ढूँढें स्टार्टअप परियोजना
  • यह सक्रिय विन्यास का चयन करें और नाम "CommandArguments"
  • उस में वर्तमान मूल्य के साथ संपादन बॉक्स बनाएं
  • अद्यतन के साथ संपत्ति पाते हैं:

    यहाँ कुछ विवरण हैं संपत्ति अगर ठीक है

    Sub SetCommandArgsProperty() 
        Dim newVal As Object 
        newVal = InputValue(GetCommandArgsPropertyValue()) 
        If TypeOf newVal Is String Then 
         SetCommandArgsProperty(newVal) 
        End If 
    End Sub 
    
    Function InputValue(ByVal defaultText As String) 
        Dim frm As New System.Windows.Forms.Form 
        Dim btn As New System.Windows.Forms.Button 
        Dim edit As New System.Windows.Forms.TextBox 
    
        edit.Text = defaultText 
        edit.Width = 100 
    
        btn.Text = "OK" 
        btn.DialogResult = System.Windows.Forms.DialogResult.OK 
    
        frm.Text = "Input command line properties" 
    
        frm.Controls.Add(btn) 
        btn.Dock = System.Windows.Forms.DockStyle.Bottom 
    
        frm.Controls.Add(edit) 
        edit.Dock = System.Windows.Forms.DockStyle.Top 
    
        frm.Height = 80 
        frm.Width = 300 
    
        If frm.ShowDialog() = System.Windows.Forms.DialogResult.OK Then 
         Return edit.Text 
        End If 
        Return System.DBNull.Value 
    End Function 
    
    Function GetCommandArgsProperty() As EnvDTE.Property 
        Dim solution As Solution 
        Dim project As Project 
        Dim sb As SolutionBuild 
        Dim str As String 
        Dim cm As ConfigurationManager 
        Dim config As Configuration 
        Dim properties As Properties 
        Dim prop As EnvDTE.Property 
    
        solution = DTE.Solution 
        sb = solution.SolutionBuild 
        For Each str In sb.StartupProjects 
         project = solution.Item(str) 
         cm = project.ConfigurationManager 
         config = cm.ActiveConfiguration 
         properties = config.Properties 
         For Each prop In properties 
          If prop.Name = "CommandArguments" Then 
           Return prop 
          End If 
         Next 
        Next 
    End Function 
    
    Function GetCommandArgsPropertyValue() 
        Return GetCommandArgsProperty().Value 
    End Function 
    
    Sub SetCommandArgsProperty(ByVal value As String) 
        GetCommandArgsProperty().Value = value 
    End Sub 
    
+0

दुर्भाग्य से मेरे पास केवल विजुअल स्टूडियो एक्सप्रेस है, इसलिए कोई मैक्रोज़ नहीं है। लेकिन मुझे दक्षिण पसंद है। – paperjam

11

एक्सटेंशन CLIArgsMadeEasy 2010/2012 एक बहुत छोटी बात है जो विजुअल स्टूडियो टूलबार, आईएमओ पर एक छोटे से टेक्स्ट बॉक्स में परियोजना के डीबग सत्र के कमांड लाइन तर्कों को सही रखती है, मैक्रोज़ का उपयोग करने से बहुत आसान और कम कठिन है।

लिंक
http://visualstudiogallery.msdn.microsoft.com/8159cd7d-2c81-47f3-9794-a347ec1fba09?SRC=VSIDE

तुम बस एक्सटेंशन प्रबंधक जो यह गैलरी में काफी जल्दी मिलेगा में अपने खोज बॉक्स में CLIArgsMadeEasy टाइप कर सकते हैं, thats कैसे मैं इसे स्थापित किया है, यदि आप जानते हैं की जरूरत है। उम्मीद है की यह मदद करेगा!

+1

+1 एटीएम यह संस्करण केवल वीएस -2010 के साथ काम करेगा (नामकरण द्वारा भ्रमित न हों ...)। यहां एक वीएस2012 संस्करण उपलब्ध है हालांकि: http://n0n4m3.codingcorner.net/?p=214। यह काम करता है लेकिन अभी भी कुछ मुद्दे हैं। –

+0

क्या वीएस2013 के लिए कोई संस्करण है? – kdmin

+3

@kdmin: हाँ, यहां http://n0n4m3.codingcorner.net/?p=1056 –

4

कम से कम विजुअल स्टूडियो 2012 में, आप परियोजना गुणों तक सीधे पहुंचने के लिए Alt+F7 शॉर्टकट का उपयोग कर सकते हैं।

इसके अलावा, खोले गए संपत्ति पृष्ठ सामान्य रूप से अंतिम खुली वस्तु को याद करते हैं, यानी Configuration Properties -> Debugging

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