从另一个控制台应用程序运行控制台应用程序 c# 找不到错误文件

Posted

技术标签:

【中文标题】从另一个控制台应用程序运行控制台应用程序 c# 找不到错误文件【英文标题】:run console application from another console application c# error file not found 【发布时间】:2017-03-16 21:18:24 【问题描述】:

我正在尝试从另一个控制台应用程序执行控制台应用程序,但我得到一个错误文件,尽管路径正确但我不断收到错误,路径是:

C:\Users\Malka\Desktop\RecomendedArtists\GetID\GetID\bin\Debug\GetID.exe

代码是:

System.Diagnostics.Process.Start(AppDir()+@"GetID\GetID\bin\Debug\GetID.exe");

public static string AppDir()

    string x = Directory.GetCurrentDirectory();
    string b = x.Substring(0, x.Length - 31);
    return b;

如果有人知道我为什么会收到错误,这将有很大帮助。

【问题讨论】:

它可能会通过先将路径输出到控制台来帮助您调试 (Console.WriteLine(path);)。 首先:您应该使用System.IO.Path.Combine() 连接有效路径。第二:哪一行抛出错误?到目前为止,您尝试过什么? 你应该使用Path.Combine来创建路径:System.Diagnostics.Process.Start(Path.Combine(AppDir(), @"GetID\GetID\bin\Debug\GetID.exe")); 我尝试了你的建议,但没有解决,我尝试了几种运行文件的格式,首先我尝试执行解决方案,但它只是打开了 VS,所以我尝试打开.exe 文件在 Debug 文件夹中。 【参考方案1】:

它似乎没有给出错误 - 只是你没有看到新的应用程序运行。

GetCurrentDirectory 可能不是您认为的位置(尤其是在 Visual Studio 的调试中运行它时)。

除了按照 einord 的建议输出路径以进行调试外,请检查 Start() 的返回 Process 对象。 Null 表示它没有创建进程 - 任何其他都表示它创建了但由于某种原因您看不到它。

我还会在任务管理器中检查 GetID 的实例没有在某处运行(因为在这种情况下 Start() 将失败并返回 null)。

【讨论】:

以上是关于从另一个控制台应用程序运行控制台应用程序 c# 找不到错误文件的主要内容,如果未能解决你的问题,请参考以下文章

如何从另一个人写入控制台应用程序

C# 错误 1053 服务没有及时响应启动或控制请求

在 c# .Net 3.5 中,如何控制多个 WaitHandles?

c++和c#之间的共享内存同步

如何从 C# 控制台停止办公应用程序 [重复]

从另一个节点上的另一个java程序控制java程序