Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 启动使用python的可执行文件_C#_.net_Windows 7_Windows Server 2003_Process.start - Fatal编程技术网

C# 启动使用python的可执行文件

C# 启动使用python的可执行文件,c#,.net,windows-7,windows-server-2003,process.start,C#,.net,Windows 7,Windows Server 2003,Process.start,我是编程和C#的新手,我试图编写一个程序,检测我的战地2服务器的错误或服务器崩溃,然后它将关闭服务器(如果服务器尚未关闭)并重新启动,但我遇到了一个小问题。当我再次尝试启动战地2备份时,我从bf2收到此错误: 调试断言失败!版本1.0.2446.12构建日期: 模块:Python 文件: c:\dice\Projects\BF2Branches\BF2Demo\Code\BF2\Game\Python\PythonHost.Cpp 电话:243 文本:无法导入bf2模块: 当前确认: 错误中的路

我是编程和C#的新手,我试图编写一个程序,检测我的战地2服务器的错误或服务器崩溃,然后它将关闭服务器(如果服务器尚未关闭)并重新启动,但我遇到了一个小问题。当我再次尝试启动战地2备份时,我从bf2收到此错误:

调试断言失败!版本1.0.2446.12构建日期:
模块:Python
文件: c:\dice\Projects\BF2Branches\BF2Demo\Code\BF2\Game\Python\PythonHost.Cpp
电话:243

文本:无法导入bf2模块:

当前确认:

错误中的路径不存在

我研究了几种不同的启动应用程序的方法,但它们都有相同的结果。到目前为止,我已经尝试了以下几点:

Process proc = new Process();
proc.StartInfo.FileName = @"txtServerPath.Text";
proc.Start();

当我手动启动bf2服务器时,它可以正常启动。那么我做错了什么
如果有必要,我的程序将同时从WindowsServer2003和Windows7运行

调试断言失败!版本1.0.2446.12构建日期:模块:Python文件: c:\dice\Projects\BF2Branches\BF2Demo\Code\BF2\Game\Python\PythonHost.Cpp 电话:243

文本:无法导入bf2模块:

当前确认:

错误中的路径不存在,因为它是写入PythonHost.cpp的计算机上的路径。”“调试断言”意味着代码开发人员在cpp文件中的指定行号处进行条件检查,以检查特定条件,确保“一切正常”。但显然不是这样。虽然BF2安装了调试版本,但这似乎很奇怪

无论如何,您的过程确实开始了,但它出错了。问题是,当您从C#中启动进程时,似乎找不到名为“bf2”的python模块

因此,首先要验证{BF2 Install folder}\python\BF2\\ uuuuu init\ uuuuuuuuu.py是否存在

为了更深入地了解为什么会发生这种情况,请尝试这样启动BF2(假设您的C#应用程序是一个控制台应用程序):

这应该会在控制台上打印一些日志,通过这些日志可以推断出一些有用的东西


顺便问一下,您能否发布剩余的错误消息(即在“Current confile:”行之后)

进程启动路径可能不正确。它启动bf2,但bf2随后返回该错误,因此据我所知,路径必须正确。这是bf2给出的完整错误。我使用的是windows窗体,所以我对它做了一些修改。Bf2现在给了我一个不同的错误,但是没有任何内容被打印到日志中。调试断言失败!版本1.0.2446.12构建日期:模块:主文件:c:\dice\Projects\BF2Branches\BF2Demo\Code\BF2\Game\Main\StatusMonitorImpl\u win32.cpp行:107 Text:无法设置控制台窗口大小当前confile:init.py确实存在。对于上述注释的格式,我深表歉意。这个网站上的评论似乎有点奇怪,它不允许我编辑它。
Process.Start(txtServerPath.Text);
Process bf2 = new Process();
bf2.StartInfo.FileName = @"C:\Program Files\EA Games\Battlefield 2\BF2.exe";
bf2.StartInfo.Arguments = "+debugOutput 1";
bf2.StartInfo.UseShellExecute = false;
bf2.StartInfo.RedirectStandardOutput = true;
bf2.StartInfo.RedirectStandardError = true;
bf2.Start();    

Console.WriteLine(bf2.StandardOutput.ReadToEnd());
Console.WriteLine(bf2.StandardError.ReadToEnd());