从代码启动 Nant

发布于 2024-11-03 07:12:14 字数 598 浏览 3 评论 0原文

我正在尝试使用 C# 代码启动 Nant。在命令行中输入的相同字符串可以正常工作,但在代码中则不起作用。这是我正在使用的代码

StringWriter consoleOut = new StringWriter( );
Console.SetOut( consoleOut );

ConsoleDriver.Main( new string[] { "-buildfile:" + filePath });

我正在使用 nant.core 来构建外部文件,但它不起作用...如果我在 cmd 中使用相同的命令,一切都会顺利...从代码启动它我收到以下消息

{NAnt 0.91(内部版本 0.91.3881.0;alpha2; 2010 年 8 月 17 日。)\r\n版权所有 (C) 2001-2010 Gerry Shaw\r\nhttp://nant.sourceforge.net\r\n\r\n\r\n对于 有关原因的更多信息 构建失败,运行构建 再次进入调试模式。\r\n\r\n尝试“nant” -help' 了解更多信息\r\n}

也观看 -help 但没有找到任何有用的东西:(

I am trying to start Nant using C# code. The same string entered in command line works fine but it won't work from code. Here is the code I am using

StringWriter consoleOut = new StringWriter( );
Console.SetOut( consoleOut );

ConsoleDriver.Main( new string[] { "-buildfile:" + filePath });

I am using nant.core to build the files externaly but it wont work... If I use the same command in cmd everything goes well... Starting it from code i get the following message

{NAnt 0.91 (Build 0.91.3881.0; alpha2;
17.08.2010.)\r\nCopyright ( C) 2001-2010 Gerry
Shaw\r\nhttp://nant.sourceforge.net\r\n\r\n\r\nFor
more information regarding the cause
of the build failure, run the build
again in debug mode.\r\n\r\nTry 'nant
-help' for more information\r\n}

watching -help too but didnt find anything usefull :(

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝海似她心 2024-11-10 07:12:14

您可以将通常从命令行调用的可执行文件 shell 出来:

            var startInfo = new ProcessStartInfo( executable, parameters )
            {
                UseShellExecute = false,
                RedirectStandardError = false,
                RedirectStandardOutput = false,
                CreateNoWindow = true
            };

            using( var process = Process.Start( startInfo ) )
            {
                if( process != null )
                {
                    process.WaitForExit( timeoutInMilliSeconds );
                    return process.ExitCode;
                }
            }

You can shell out to your executable that you would normally call from the command line:

            var startInfo = new ProcessStartInfo( executable, parameters )
            {
                UseShellExecute = false,
                RedirectStandardError = false,
                RedirectStandardOutput = false,
                CreateNoWindow = true
            };

            using( var process = Process.Start( startInfo ) )
            {
                if( process != null )
                {
                    process.WaitForExit( timeoutInMilliSeconds );
                    return process.ExitCode;
                }
            }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文