web-dev-qa-db-ja.com

Visual Studioデバッグ用のコマンドラインパラメーターをすばやく入力しますか?

コマンドライン引数を変更してから、実行可能ファイルをデバッグしたいと思います。

デフォルトのVisualStudio UIでは、これにはいくつかの曲がりくねったマウスとキーボードのアクションが必要です。

プロジェクト...右クリック...構成プロパティ...デバッグ...コマンド引数...type args ... ENTER ... F5

この一般的なアクションを他の一般的な操作と同じくらい簡単にする方法はありますか?たとえば、すべてのファイルで次のようなパターンを検索します。

CNTL + SHIFT + F ... タイプ検索パターン ... ENTER

たとえば、カスタム編集ボックスを作成して、デバッグコマンドライン引数にすばやくアクセスできるようにする方法はありますか?または、引数を入力してデバッグを直接開始できる単純な「デバッグダイアログ」をキーバインドでポップアップさせる方法はありますか?例えば.

ALT + F5 ... type args ... ENTER

C++とVisualStudio 2010Expressを使用しています。ありがとう!

21
paperjam

以下のマクロが役立つはずです。 [ツール]-> [マクロ]-> [マクロエクスプローラー]を開き、新しいモジュールを作成して編集し、以下のコードをコピーして貼り付けます。必要なコマンドはSetCommandArgsPropertyです。 UIは素晴らしいものではありませんが、機能します(VS 2005、これがVS 2010でも機能することを願っています)。次に、このマクロを実行するためのショートカットを追加します。

詳細は次のとおりです。

  • スタートアッププロジェクトを探す
  • アクティブな構成を選択し、「CommandArguments」という名前のプロパティを見つけます
  • 現在の値を含む編集ボックスを作成します
  • [OK]が選択されている場合はプロパティを更新します

    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
    
8

拡張機能CLIArgsMadeEasy2010/2012は、プロジェクトのデバッグセッションのコマンドライン引数をVisual StudioツールバーのIMOの小さなテキストボックスに配置する素晴らしい小さな機能であり、マクロを使用するよりもはるかに簡単で面倒ではありません。

リンク
http://visualstudiogallery.msdn.Microsoft.com/8159cd7d-2c81-47f3-9794-a347ec1fba09?SRC=VSIDE

拡張機能マネージャーの検索ボックスにCLIArgsMadeEasyと入力するだけで、ギャラリーですぐに見つけることができます。知る必要がある場合は、この方法でインストールしました。お役に立てれば!

11
osirisgothra

少なくともVisualStudio 2012では、Alt+F7ショートカットを使用してプロジェクトのプロパティに直接アクセスできます。

さらに、開かれたプロパティページは通常、最後に開かれたアイテム、つまりConfiguration Properties -> Debuggingを記憶しています。

4
qwerty