运行 程序文件夹中的 c# exe 文件

Run exe file in c# within the program folder

我需要从我的程序目录启动一个 EXE 文件,但不提供完整路径。

private void programul1ToolStripMenuItem_Click(object sender, EventArgs e)
{
    System.Diagnostics.Process.Start(@"C:\Users\radum\Desktop\mapa 3 prog\Prog3\Program 1.exe");
}

我该怎么做才能仅从...\Prog3\Program 1.exe 提供路径?

只需使用 relative path:

System.Diagnostics.Process.Start(@"Program 1.exe");

如果 Program 1.exe 与程序 运行 在同一目录中,代码 current working directory 不在同一目录中,则上面的代码将起作用例如使用快捷方式修改。

如果不是,那么您将不得不找出程序的相对路径(应该在bin/debug/中的路径)

Common.AssemblyDirectory returns 包含 运行 程序集的文件夹。

所以使用: Path.Combine(Common.AssemblyDirectory, @"Prog3\Program 1.exe");

编辑:您在我回答后编辑了问题。正如poke所说,你把文件放在了错误的文件夹中。

通常解决方案目录比默认输出目录高 3 级,因此您应该使用

System.Diagnostics.Process.Start(@"..\..\..\Program 1.exe");

但你不应该这样做。您必须将 Program 1.exe 复制到您的输出目录并使用

System.Diagnostics.Process.Start(@"Program 1.exe");

相反。您可以使用 post build commands 来执行此操作。 将其用作 post 构建命令

copy "$(SolutionDir)Program 1.exe" "$(OutDir)Program 1.exe"