从另一个控制台应用程序运行控制台应用程序 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# 找不到错误文件的主要内容,如果未能解决你的问题,请参考以下文章