通过Cmd

时间:2017-08-07 20:27:35

标签: vb.net visual-studio-2015 command-line-arguments argumentnullexception

我使用VB.Net创建了一个Windows应用程序,它使用Sub Main来确定应用程序是应该运行特定进程还是仅作为用户交互表单打开。除了当我尝试通过Windows任务计划程序安排我的应用程序时,一切都很好。我一直得到0xFF的结果代码。然后我尝试直接通过命令提示符运行我的应用程序。执行此操作时,我收到System.ArgumentNullException错误。提供的其他信息非常缺乏,所以我很难确定我的问题究竟在哪里。我可以使用System.Diagnostics.Process命令从表单运行我的应用程序,并以这种方式将参数传递给它。我也可以通过在应用程序属性的“调试”选项卡中输入命令行参数来成功运行它。下面是我的代码的大致概述。我使用Command Line Parser Library来破译参数。任何帮助或指导将不胜感激

Imports CommandLine
Imports CommandLine.Text

Module Startup

    Public Sub Main()
        Dim Args() As String = Environment.GetCommandLineArgs
        Dim Options As New Arguments
        Dim Parser As New Parser

        If Parser.ParseArguments(Args, Options) Then
          ' Run application
        Else
          ' Open windows form
        End If
    End Sub

    Public Class Arguments
        <[Option]("p", "process", Required:=True)> Public Property ProcessOption As String
        <[Option]("r", "run", Required:=True)> Public Property RunOption As String
        <[Option]("d", "date", Required:=False, DefaultValue:=Nothing)> Public Property DateOption As Date
        <[Option]("u", "user", Required:=False, DefaultValue:="")> Public Property UserOption As String
    End Class

End Module

1 个答案:

答案 0 :(得分:0)

我能够使用调试器在我的测试机器上运行它,并找到我的问题所在。它实际上与命令提示符传递的参数无关。这是我做的另一个子调用。我将不得不玩它,如果我想不通,我会打开另一个问题。谢谢您的帮助。