从 VB.NET 运行 Ant 时"The system cannot find the file specified"错误



我正在尝试通过VB项目使用Apache Ant运行Python应用程序word2html。可执行的以下代码。

//in loop
If (Not ExecuteProgram("ant", "word2html", True)) Then
            Throw New System.Exception("couldn't run word2html")
        End If
//executeprogram function
Public Function ExecuteProgram(ByVal ExeLoc As String, ByVal ExeArgs As String, ByVal bSynch As Boolean) As Boolean
    'The exefile location is passed in along with a boolean value of whether to 
    'execute the file syncronously or asynchronously
    Try
        Dim MyInstance As New System.Diagnostics.Process
        Dim si As New ProcessStartInfo(ExeLoc, ExeArgs)
        MyInstance.StartInfo = si
        MyInstance.Start()
        If bSynch Then
            'run synch
            MyInstance.WaitForExit()
        End If
        Return True
    Catch ex As Exception
        MsgBox(ex.ToString)
        Return False
    End Try
End Function

几周前,代码成功运行,但现在由于以下错误消息而失败:

system.com.ponentmodel.win32 exception(0x80004005):系统找不到指定的文件

在system.diagnostics.process.startwithshellexecuteex(processStartinfo startInfo)

在consoleapplication1.hello.executeprogram(字符串exeloc,string exeargs,boolean bsynch)

in C: users shwang desktop svn trunk data data data_loading scripts data_sheet _scripts Pipeline ProcessDataSheetPipeline Module1.vb:行349

当我从cmd窗口运行ant word2html时,它将成功运行。

我怀疑是我的工作环境正在改变,我检查了ANT_HOMEJAVA_HOME变量正确,并包含在PATH环境变量中。我还应该检查其他哪些依赖项?我目前正在使用Microsoft VB 2010 Express作为我的IDE。

ant实际上是批处理脚本,而不是可执行文件。这就是为什么错误消息是"系统找不到指定的文件"。Windows找不到名为ant的可执行文件。

您可以将cmd.exe与其/c选项一起运行批处理脚本:

If (Not ExecuteProgram("cmd.exe", "/c ant word2html", True)) Then

相关内容

  • 没有找到相关文章

最新更新