Быстро ввести параметры командной строки для отладки Visual Studio? - PullRequest
20 голосов
/ 28 марта 2011

Я хочу изменить аргументы командной строки, а затем отладить мой исполняемый файл.

С пользовательским интерфейсом Visual Studio по умолчанию это требует нескольких сложных действий с мышью и клавиатурой:

Проект ... щелкните правой кнопкой мыши ... Свойства конфигурации ... Отладка ... Аргументы команды ... введите args ... ENTER ... F5

Есть ли способ сделать это общее действие столь же простым, как и другие общие операции, например, поиск во всех файлах шаблона, который идет:

CNTL + SHIFT + F ... тип шаблона поиска ... ENTER

Например, есть ли способ создать настраиваемое поле редактирования, чтобы обеспечить быстрый доступ к аргументам командной строки отладки? Или способ заставить привязку клавиш всплыть в простом «диалоге отладки», в котором можно ввести аргументы и начать отладку напрямую? например,

ALT + F5 ... введите args ... ENTER

Я использую C ++ и Visual Studio 2010 Express. Спасибо!

Ответы [ 3 ]

11 голосов
/ 24 сентября 2012

Расширение CLIArgsMadeEasy 2010/2012 - это отличная мелочь, которая помещает аргументы командной строки сеанса отладки проекта прямо в небольшое текстовое поле на панели инструментов Visual Studio, IMO, намного проще и менее утомительна, чем при использовании макросов.

Ссылка
http://visualstudiogallery.msdn.microsoft.com/8159cd7d-2c81-47f3-9794-a347ec1fba09?SRC=VSIDE

Вы можете просто ввести CLIArgsMadeEasy в поле поиска в диспетчере расширений, который довольно быстро найдет его в галерее, вот как я его установил, если вам нужно знать. Надеюсь, это поможет!

8 голосов
/ 28 марта 2011

Макрос ниже должен помочь.Откройте «Tools-> Macros-> Macro Explorer», затем создайте новый модуль, отредактируйте его и скопируйте и вставьте код ниже.Обязательной командой является SetCommandArgsProperty.Интерфейс не очень хороший, но он работает (VS 2005, я надеюсь, это также будет работать в VS 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
    
4 голосов
/ 10 декабря 2013

По крайней мере, в Visual Studio 2012 вы можете использовать ярлык Alt+F7 для прямого доступа к свойствам проекта.

Кроме того, открытые страницы свойств обычно запоминают последний открытый элемент, то есть Configuration Properties -> Debugging.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...